java8-时间相关代码整理

获取昨天起止时刻,就是0点和23点59分59秒

LocalDateTime.now().minus(Period.ofDays(1)).with(LocalTime.MIN)
LocalDateTime.now().minus(Period.ofDays(1)).with(LocalTime.MAX)

获取当前时刻

LocalDateTime.now(),默认输出格式:2022-12-12T20:20:20.000
new Date()
Calendar.getInstance().getTime()

获取今天0点

LocalDateTime.now().with(LocalTime.MIN)

获取昨日此刻

LocalDateTime.now().plusDays(-1)

最常用的formatter,注意h是1-12点计时,H是0-23点计时

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

给定指定的Date类型入参date,转为LocalDateTime

LocalDateTime.ofInstant(Instant.ofEpochMilli(date.getTime()), ZoneId.systemDefault())

给定字符串类型时间(如"2019-10-10 06:06:06"),转为LocalDateTime

LocalDateTime.parse(timeStr,DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));

获取当前时间戳

long milli = Instant.now().toEpochMilli(); // 精确到毫秒
long second = Instant.now().getEpochSecond(); // 精确到秒
System.currentTimeMillis();

获取本月最后一天

LocalDate.now().with(TemporalAdjusters.lastDayOfMonth())

计算两个时间的时间差

LocalDate d1 = LocalDate.now();
LocalDate d2 = d1.plusDays(2);
Period period = Period.between(d1, d2);
System.out.println(period.getDays());   //2

spring中常用的cron表达式

每天早六点晚8点
0 0 6,20 * * ?
每隔2分钟
0 0/2 * * * ?

posted @ 2022-12-20 20:32  鼠标的博客  阅读(198)  评论(0编辑  收藏  举报