上一篇研究了一下 JDK 1.8 time 包的 api,JDK 1.8 中的日期与时间 API 一览。


图片


顺带把里面的示例拆分一下。


常用 api

1、 获取当前日期

LocalDate.now()

 

2、创建日期

LocalDate date = LocalDate.of(2020, 9, 21)


3、获取年份

date.getYear()
//通过 TemporalField 接口的实现枚举类 ChronoField.YEAR 获取年份date.get(ChronoField.YEAR)

 

4、获取月份

date.getMonth().getValue()
//通过 TemporalField 接口的实现枚举类 ChronoField.MONTH_OF_YEAR 获取月份date.get(ChronoField.MONTH_OF_YEAR)

 

5、获取日

date.getDayOfMonth()
//通过 TemporalField 接口的实现枚举类 ChronoField.DAY_OF_MONTH 获取日date.get(ChronoField.DAY_OF_MONTH)

 

6、获取周几

date.getDayOfWeek()

 

7、获取当前月多少天

date.lengthOfMonth()

 

8、获取当前年是否为闰年

date.isLeapYear()

 

9、当前时间

LocalTime nowTime = LocalTime.now()


10、创建时间

LocalTime.of(23, 59, 59)

 

11、获取时

nowTime.getHour()

 

12、获取分

nowTime.getMinute()


13、获取秒

nowTime.getSecond()


14、获取毫秒

nowTime.getLong(ChronoField.MILLI_OF_SECOND)


15、获取纳秒

nowTime.getNano()

 

16、创建日期时间对象

LocalDateTime.of(2020, 9, 21, 1, 2, 3);LocalDateTime.of(date, nowTime);

 

17、获取当前日期时间对象

LocalDateTime.now()

 

18、通过 LocalDate 创建日期时间对象

date.atTime(1, 2, 3)

 

19、通过 LocalTime 创建日期时间对象

nowTime.atDate(date)

 

20、通过 LocalDateTime 获取 LocalDate 对象

LocalDateTime.now().toLocalDate()

 

21、通过 LocalDateTime 获取 LocalTime 对象

LocalDateTime.now().toLocalTime()

 

22、解析日期字符串

LocalDate.parse("2020-09-21")

 

23、解析时间字符串

LocalTime.parse("01:02:03")


24、解析日期时间字符串

LocalDateTime.parse("2020-09-21T01:02:03", DateTimeFormatter.ISO_LOCAL_DATE_TIME)

 

25、方便时间建模、机器处理的时间处理类 Instant,起始时间 1970-01-01 00:00:00

//起始时间 + 3 秒Instant.ofEpochSecond(3)//起始时间 + 3 秒 + 100 万纳秒Instant.ofEpochSecond(3, 1_000_000_000)//起始时间 + 3 秒 - 100 万纳秒Instant.ofEpochSecond(3, -1_000_000_000))//距离 1970-01-01 00:00:00 毫秒数Instant.now().toEpochMilli()

 

26、Duration:LocalTime、LocalDateTime、Intant 的时间差处理

Duration.between(LocalTime.parse("01:02:03"), LocalTime.parse("02:03:04"))Duration.between(LocalDateTime.parse("2020-09-21T01:02:03"), LocalDateTime.parse("2020-09-22T02:03:04"))Duration.between(Instant.ofEpochMilli(1600623455080L), Instant.now())



27、日期时间,前、后、相等比较

//2020-09-21 在 2020-09-18 前?LocalDate.parse("2020-09-21").isBefore(LocalDate.parse("2020-09-18"))//01:02:03 在 02:03:04 后?LocalTime.parse("01:02:03").isAfter(LocalTime.parse("02:03:04"))

 

28、修改日期、时间对象,返回副本

//修改日期返回副本LocalDate.now().withYear(2019).withMonth(9).withDayOfMonth(9)LocalDate date4Cal = LocalDate.now();//加一周date4Cal.plusWeeks(1)//减两个月date4Cal.minusMonths(2)//减三年date4Cal.minusYears(3)

 

29、格式化

//格式化当前日期LocalDate.now().format(DateTimeFormatter.ISO_LOCAL_DATE)//指定格式,格式化当前日期LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"))指定格式,格式化当前日期时间//格式化当前日期时间LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMdd  HH:mm:ss"))

 

30、解析

//日期解析LocalDate.parse("2020-09-20")//指定格式,日期解析LocalDate.parse("2020/09/20", DateTimeFormatter.ofPattern("yyyy/MM/dd"))//指定格式,日期时间解析LocalDateTime.parse("2020/09/20 01:01:03", DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss"))

 

31、时区

//上海时区ZoneId shanghaiZone = ZoneId.of("Asia/Shanghai");//设置日期为上海时区LocalDate.now().atStartOfDay(shanghaiZone)//设置日期时间为上海时区LocalDateTime.now().atZone(shanghaiZone)//设置 Instant 为上海时区Instant.now().atZone(shanghaiZone)

 

32、子午线时间差

//时间差减 1 小时ZoneOffset offset = ZoneOffset.of("-01:00");//设置时间差OffsetDateTime.of(LocalDateTime.now(), offset)


更多相关文章

  1. JDK 1.8 中的日期与时间 API 一览
  2. 4: zabbix5.0自动发现网站域名并监控访问状态和请求时间
  3. 分享 1 个一次性免费获得极客时间 2-3 个课程的办法
  4. 说一下这段时间面试的感觉
  5. 无限重置idea试用期过期时间插件 简单方便 亲测可用
  6. 数据结构--时间复杂度与空间复杂度
  7. Java 8 日期 / 时间( Date Time )API 指南
  8. Java EE 8 时间表公布,预计 7 月发布最终版

随机推荐

  1. AKS网络模型介绍及创建技巧
  2. Python地信专题 | 基于geopandas的空间数
  3. 好看不火 | 怎么才有数据分析思路?
  4. 案例 | 用pdpipe搭建pandas数据分析流水
  5. centos7 安装python3.8
  6. Python地信专题 | 基于geopandas的空间数
  7. 利用python回顾统计学中的基础概念(全)
  8. python自动化办公太难?学这些就够用了
  9. Python地信专题 | 基于geopandas的空间数
  10. 知乎千赞 | 疫情在家能get什么新技能?