查看: 191|回复: 5

[Java新手区] Date-Time Package

[复制链接]

该用户从未签到

发表于 2018-3-10 23:21:46 | 显示全部楼层 |阅读模式
Java 8新增了LocalDate和LocalTime接口,一方面把月份和星期都改成了enum防止出错,另一方面把LocalDate和LocalTime变成不可变类型,这样就线程安全了。

  1. @Test
  2.     public void today(){
  3.         LocalDate today = LocalDate.now();
  4.         System.out.println(today);
  5.     }

  6.     @Test
  7.     public void parseString(){
  8.         // 严格按照ISO yyyy-MM-dd验证,02写成2都不行,当然也有一个重载方法允许自己定义格式
  9.         LocalDate date = LocalDate.parse("2016-02-05");
  10.         System.out.println(date);
  11.     }

  12.     @Test
  13.     public void calculate(){
  14.         LocalDate today = LocalDate.now();
  15.         LocalDate firstDayOfThisMonth = today.with(TemporalAdjusters.firstDayOfMonth());
  16.         System.out.println(firstDayOfThisMonth);

  17.         // 取本月第2天:
  18.         LocalDate secondDayOfThisMonth = today.withDayOfMonth(2);
  19.         System.out.println(secondDayOfThisMonth);

  20.         // 取本月最后一天,再也不用计算是28,29,30还是31:
  21.         LocalDate lastDayOfThisMonth = today.with(TemporalAdjusters.lastDayOfMonth());
  22.         System.out.println(lastDayOfThisMonth);

  23.         // 取下一天:
  24.         LocalDate nextDay = lastDayOfThisMonth.plusDays(1);
  25.         System.out.println(nextDay);

  26.         // 取2015年1月第一个周一,这个计算用Calendar要死掉很多脑细胞:
  27.         LocalDate firstMondayOf2015 = LocalDate.parse("2015-01-01").with(TemporalAdjusters.firstInMonth(DayOfWeek.MONDAY));
  28.         System.out.println(firstMondayOf2015);
  29.     }

  30.     @Test
  31.     public void getTime(){
  32.         LocalTime now = LocalTime.now();
  33.         System.out.println(now);
  34.     }

  35.     @Test
  36.     public void getTimeWithoutMillis(){
  37.         LocalTime now = LocalTime.now().withNano(0);
  38.         System.out.println(now);
  39.     }

  40.     @Test
  41.     public void parseTime(){
  42.         LocalTime zero = LocalTime.of(0, 0, 0); // 00:00:00
  43.         System.out.println(zero);

  44.         LocalTime mid = LocalTime.parse("12:00:00"); // 12:00:00
  45.         System.out.println(mid);
  46.     }
复制代码


您需要登录后才可以回帖 登录 | 注册青鸟豆号

本版积分规则

Copyright 1999-2018 Beijing Aptech Beida Jade Bird Information Technology Co.,Ltd

北大青鸟IT教育 北京阿博泰克北大青鸟信息技术有限公司 版权所有

京ICP备11045574号-3 京公网安备11010802013845号

快速回复 返回顶部 返回列表