Java时间函数使用总结

时间函数使用总结:
1. 使用字符串初始化Date
    String dateString = “2018-02-23”;
    Date date= new SimpleDateFormat(“yyyy-MM-dd”).parse(dateString);
2. 使用时间戳初始化
    Date date = new Date(时间戳);
3. 计算两个日期相差天数
    long day = date1.getTime() - date2.getTime()) / (24*60*60*1000) + 1;
    
     // 得微秒级时间差
    long val = calendarEnd.getTimeInMillis() - calendarBegin.getTimeInMillis();
    // 换算后得到天数
    long day = val / (1000 * 60 * 60 * 24);

4. 使用Calendar
    Calendar calendar=Calendar.getInstance();
    Date date=calendar.getTime();
    calendar.setTime(date);
5.获取年月日
    calendar.get(Calendar.YEAR);
    calendar.get(Calendar.MONTH) + 1;
    calendar.get(Calendar.DAY_OF_MONTH);

    calendar.get()方法
    calendar.get(Calendar.DAY_OF_WEEK); 当前周的第几天
    calendar.get(Calendar.DAY_OF_MONTH); 当前月的第几天
    calendar.get(Calendar.DAY_OF_YEAR); 当前年的第几天
7. calendar.add(field1,field2)方法
    add方法可以修改当前的日期
    field1指定修改的字段,可以为Calendar.DAY_OF_WEEK,DAY_OF_MONTH
    filed2可以增加或减少天数,为int型
    
8. 判断某个日期是否在一定日期范围内:
    return date.after(beginDate) && date.before(endDate);    //开区间

9. Calendar的用法:可以获取当前的年份,月,天数,小时,分钟。可以进行时间的加减

10. Java8: LocalDate LocalTime
    java.time.LocalDate.get(TemporalField field)
    异常:
    DateTimeException - 如果无法获取该字段的值或该值超出该字段的有效值范围。
    UnsupportedTemporalTypeException - 如果不支持该字段或值的范围超过int。
    ArithmeticException - 如果发生数字溢出。
    ChronoField.DAY_OF_MONTH
    Date转LocalDate
        Date date = new Date();
        Instant instant = date.toInstant();
        ZoneId zoneId = ZoneId.systemDefault();

        // atZone()方法返回在指定时区从此Instant生成的ZonedDateTime。
        LocalDate localDate = instant.atZone(zoneId).toLocalDate();
    LocalDate转Date
        ZoneId zoneId = ZoneId.systemDefault();
        LocalDate localDate = LocalDate.now();
        ZonedDateTime zdt = localDate.atStartOfDay(zoneId);
        Date date = Date.from(zdt.toInstant());
// 取本月第1天:
LocalDate firstDayOfThisMonth = today.with(TemporalAdjusters.firstDayOfMonth()); // 2014-12-01
// 取本月第2天:
LocalDate secondDayOfThisMonth = today.withDayOfMonth(2); // 2014-12-02
// 取本月最后一天,再也不用计算是28,29,30还是31:
LocalDate lastDayOfThisMonth = today.with(TemporalAdjusters.lastDayOfMonth()); // 2014-12-31
// 取下一天:
LocalDate firstDayOf2015 = lastDayOfThisMonth.plusDays(1); // 变成了2015-01-01
// 取2015年1月第一个周一,这个计算用Calendar要死掉很多脑细胞:
LocalDate firstMondayOf2015 = LocalDate.parse("2015-01-01").with(TemporalAdjusters.firstInMonth(DayOfWeek.MONDAY)); // 2015-01-05

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值