java date 》_JAVA date 日常使用总结

主要使用 LocalDateTime 和 LocalDate

LocalDate : 只是到日期

LocalDateTime :包含dateTime 但是格式化中没有通用的 如 2020-01-07 18:00:01 格式的

格式转换的 DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")

1. 转换为 yyyy-MM-dd String

格式是 : 2020-01-07

// 1. 当前时间的

LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));

// 2. 固定时间的

String parseDateStr = "2020-01-07";

String fixDateFormat = LocalDate.parse(parseDateStr).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));

思路 先转换为 LocalDate 再转换为 string

同样使用于 yyyy-MM-dd HH:mm:ss

LocalDate 可以 parse 任意类型

String str = "2017-11-21 14:41:06:612";

DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss:SSS");

String fixDateTimeStr = LocalDate.parse(str,fmt).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));

2. 转换为 yyyy-MM-dd HH:mm:ss String

格式是 : 2020-01-07 18:00:01

// 获取当前时间的年月日 时分秒

String formatDateTimeStr = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));

// 获取固定时间的 年月日 时分秒

String formatDateStr = "2019-10-12";

String startOfDay = LocalDate.parse(formatDateStr).atTime(LocalTime.MIN)

.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));

String endOfDay = LocalDate.parse(formatDateStr).atTime(LocalTime.MAX)

.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));

通过 atTime 转换为 LocalDateTime

str + " 00:00:00"

3. 转换为 date

LocalDate nowLocalDate = LocalDate.now();

Date date = Date.from(localDate.atStartOfDay(ZoneOffset.ofHours(8)).toInstant());

LocalDate nowLocalDate = LocalDate.now();

Date date = Date.from(nowLocalDate.atStartOfDay(ZoneOffset.ofHours(8)).toInstant());

4. 修改时间

LocalDateTime.now().plusDays(2).withHour(23);

或者比较差值

LocalDateTime localDateTime01 = LocalDateTime.of(2019, 6, 18, 12, 0);

LocalDateTime localDateTime02 = LocalDateTime.of(2019, 6, 1, 12, 0);

System.out.println(localDateTime01.isAfter(localDateTime02)); // 类似的,还有 isBefore 等方法

LocalDateTime localDateTime03 = LocalDateTime.of(2019, 6, 18, 12, 0);

LocalDateTime localDateTime04 = LocalDateTime.of(2019, 6, 18, 13, 0);

Duration duration = Duration.between(localDateTime03, localDateTime04);

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值