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 * * * ?