java的日期处理

java的日期处理工具类汇总

在编写程序时,日常经常会使用日期转换字符串,字符串转换日期,或者日期之间的计算等等.
日常接触的jdk自带的时间类为

  • java.util.Date
  • java.text.SimpleDateFormat
  • java.util.Calendar

以上的类为基本上古董级的java日期处理类,使用起来非常不方便,且很容易存在性能问题.

后续接触 到 joda-time
https://www.joda.org/joda-time/
日常使用的一些例子汇总一下:

  • 获取当月的第一天:
  DateTime property = DateTime.now().withDayOfMonth(1).withMillisOfDay(0);
  System.out.println("获取当月的第一天:" + property.toDate());
  
  获取当月的第一天:Fri Feb 01 00:00:00 CST 2019
  • 格式化为指定时间格式string字符串
   String yyyyMMddHHmmss = DateTime.now().withDayOfMonth(1).withMillisOfDay(0).toString("yyyyMMddHHmmss");
   System.out.println("格式化为 yyyyMMddHHmmss:" + yyyyMMddHHmmss);
  String yyyyMMdd = DateTime.now().withDayOfMonth(1).withMillisOfDay(0).toString("yyyyMMdd");
  System.out.println("格式化为 yyyyMMdd:" + yyyyMMdd);

格式化为 yyyyMMddHHmmss:20190201000000
格式化为 yyyyMMdd:20190201
  • 获取当月的最后一天
   DateTime dateTime = new DateTime("2016-02").dayOfMonth().withMaximumValue();
    System.out.println("获取当月的最后一天:" + dateTime.toString());
     获取当月的最后一天:2016-02-29T00:00:00.000+08:00
  • 计算两个日期的时间间隔为多少天
  DateTime startDate = new DateTime(DateUtil.convertDate(dto.getStartTime(), DateUtil.SHORT_DATE_FORMAT));
  DateTime endDate = new DateTime(DateUtil.convertDate(dto.getEndTime(), DateUtil.SHORT_DATE_FORMAT));
  int days = Days.daysBetween(startDate, endDate).getDays();


/**
    * 时间格式转换
    * 
    * @param strDate
    * @return
    */
   public static Date convertDate(String strDate, String format) {
       SimpleDateFormat dateFormat = new SimpleDateFormat(format);
       try {
           return dateFormat.parse(strDate);
       } catch (Exception exception) {
           LogUtil.error("时间转换异常:" + strDate, exception);
       }
       return new Date();
   }

后续有待更新

2019年2月22日15:36:17

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值