Java开发中常用到的各种时间转换

1.常用类

  • LocalDate:表示没有时区的日期,例如 2024-04-01。
  • LocalTime:表示没有日期的时间,例如 10:15:30。
  • LocalDateTime:表示没有时区的日期和时间。
  • ZonedDateTime:表示带时区的日期和时间。
  • Instant:表示时间线上的一个瞬时点。
  • Duration:表示两个时刻之间的时间量。
  • Period:表示两个日期之间的年、月、日的量。

2.常用方法

2.1创建和获取

  • LocalDate.now():获取当前日期。
  • LocalTime.now():获取当前时间。
  • LocalDateTime.now():获取当前日期和时间。
  • ZonedDateTime.now():获取当前带时区的日期和时间。
  • Instant.now():获取当前的瞬时点。

2.2解析和格式化

  • LocalDate.parse(CharSequence text):从文本字符串解析出一个 LocalDate。
  • LocalDateTime.parse(CharSequence text):从文本字符串解析出一个 LocalDateTime
  • DateTimeFormatter.ofPattern(String pattern):创建一个格式化器,用给定的模式。
  • 使用DateTimeFormatter 格式化日期时间,如 localDateTime.format(formatter)。

2.3时间操作

  • plusDays, plusWeeks, plusMonths, plusYears:在日期上加上一定的天、周、月、年。
  • minusHours, minusMinutes, minusSeconds:在时间上减去一定的小时、分钟、秒。
  • withDayOfMonth, withDayOfYear, withMonth, withYear:将某个时间部分更改为指定的值。

2.4时间比较

  • isBefore, isAfter, isEqual:用于比较两个日期时间的先后顺序。
  • Duration.between(Instant startInclusive, Instant endExclusive):计算两个瞬时点之间的持续时间。
  • Period.between(LocalDate startDateInclusive, LocalDate endDateExclusive):计算两个日期之间的期间。

下面是一些示例,用到时候不断补充

  1. 获取当天的开始时间(也就是最小时间)

    // 我这儿带有时区的哦,改为你需要的时区即可 
    LocalDate.now().atStartOfDay(ZoneId.of("Asia/Shanghai")) 
    
  2. 获取当天的最大时间:比如:2024-04-01 23:59:59

    // 我这儿带有时区的哦,改为你需要的时区即可  
    LocalDate.now().atTime(LocalTime.MAX).atZone(ZoneId.of("Asia/Shanghai"))
    
  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

书语时

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值