首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于DST的数据库存储时间转换

基于DST的数据库存储时间转换
EN

Stack Overflow用户
提问于 2019-11-19 16:37:06
回答 1查看 66关注 0票数 1

我把时间储存在DB里。

代码语言:javascript
复制
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:00

Java代码:

代码语言:javascript
复制
ZonedDateTime.of(date, entity.getStartTime(), ZoneId.systemDefault());

这是检索开始时间为09:00和结束时间为19:00时,白天的节能灯结束。

在节约日照的基础上取回这些时间的最佳方法是什么?

示例

对于一个工作日,我需要得到的开始时间为08:00,结束时间为6:00,而不管DST。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-19 16:51:04

我知道这样做可能很奇怪,但您可以将其转换为UTC,然后使用withZoneSameLocal将同一瞬间转换为另一个区域。

此方法更改时区并保留本地日期时间。只有在新区域无效时才更改本地日期时间,该区域使用与ofLocal(LocalDateTime、ZoneId、ZoneOffset)相同的方法确定。

代码语言:javascript
复制
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]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58938899

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档