java时间转换问题汇总

String类型转Date类型

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 Date date = simpleDateFormat.parse(time);

或者一行

new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2020-04-20 00:00:00.000")
  1. 问题一:Unhandled exception:java.text.ParseException
  • 解决方式:在方法声明后加throws ParseException,例如下:
@Override
    public List<PolicyEntity> findByTime(String time) throws ParseException {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date = simpleDateFormat.parse(time);
        return policyMapper.findByTime(date);
    }

Date类型转String类型


/**
   * 获取现在时间
   * 
   * @return返回字符串格式 yyyy-MM-dd HH:mm:ss
   */
public static String getStringDate() {
   Date currentTime = new Date();
   SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
   String dateString = formatter.format(currentTime);
   return dateString;
}

计算两个日期间隔天数

firstDate和lastDate为date类型

int days = (int) ((lastDate.getTime().getTime() - firstDate.getTime().getTime()) / (1000 * 3600 * 24));
System.out.println("总共间隔时间天数"+days);

两个日期字符串之间的日期集合

 /**
     * 获取两个日期字符串之间的日期集合
     * @param startDate
     * @param endDate
     * @return
     */
    public static List<String> getBetweenDate(Date startDate, Date endDate){
        // 时间格式转换为 2020/Jan/20 格式
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MMM/dd", Locale.UK);
        // 声明保存日期集合
        List<String> list = new ArrayList<String>();
        //用Calendar 进行日期比较判断
        Calendar calendar = Calendar.getInstance();
        while (startDate.getTime()<=endDate.getTime()){
            // 把日期添加到集合
            list.add(sdf.format(startDate));
            // 设置日期
            calendar.setTime(startDate);
            //把日期增加一天
            calendar.add(Calendar.DATE, 1);
            // 获取增加后的日期
            startDate=calendar.getTime();
        }
        return list;
    }

日期月份转英文格式

主要调整SimpleDateFormat里的格式为自己所需样子,加上参数Locale.UK即可

// 2020-04-20 >> Apr 20 20120  
    public String changeYMDtoEn(String dateYMD) throws Exception{
        Date dates = TypeChange.StrToDate(dateYMD);
        SimpleDateFormat sdf = new SimpleDateFormat("MMM dd yyyy", Locale.UK);      // 月日年
        return sdf.format(dates);
    }
    public String changeYMDtoEn(Date dateYMD) throws Exception{
        SimpleDateFormat sdf = new SimpleDateFormat("MMM dd yyyy", Locale.UK);      // 月日年
        return sdf.format(dateYMD);
    }

例如上述我的例子中

 // 时间格式转换为 2020/Jan/20 格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MMM/dd", Locale.UK);
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值