我把时间储存在DB里。
ID TYPE STARTTIME ENDTIME
1 WEEKDAY 08:00:00 18:00:00
2 SATURDAY 10:00:00 16:00:00
3 SUNDAY 10:00:00 16:00:00
4 HOLIDAY 10:00:00 16:00:00Java代码:
ZonedDateTime.of(date, entity.getStartTime(), ZoneId.systemDefault());这是检索开始时间为09:00和结束时间为19:00时,白天的节能灯结束。
在节约日照的基础上取回这些时间的最佳方法是什么?
示例
对于一个工作日,我需要得到的开始时间为08:00,结束时间为6:00,而不管DST。
发布于 2019-11-19 16:51:04
我知道这样做可能很奇怪,但您可以将其转换为UTC,然后使用withZoneSameLocal将同一瞬间转换为另一个区域。
此方法更改时区并保留本地日期时间。只有在新区域无效时才更改本地日期时间,该区域使用与ofLocal(LocalDateTime、ZoneId、ZoneOffset)相同的方法确定。
ZonedDateTime dateTime = ZonedDateTime.of(LocalDate.now(),LocalTime.now() ,ZoneId.of("UTC"));
System.out.println(dateTime); //2019-11-19T10:48:12.324356Z[UTC]
ZonedDateTime result = dateTime.withZoneSameLocal(ZoneId.of("America/Chicago")); // provide ZoneId.systemDefault()
System.out.println(result); //2019-11-19T10:48:12.324356-06:00[America/Chicago]https://stackoverflow.com/questions/58938899
复制相似问题