首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获取特定时区的服务器端代码中的日期/时间

获取特定时区的服务器端代码中的日期/时间
EN

Stack Overflow用户
提问于 2020-10-29 06:25:51
回答 1查看 32关注 0票数 0

在服务器代码中,我希望获得“天”,但不是服务器日期/时间,而是特定时区的“天”,特别是GMT+8。

我有这样的代码:

代码语言:javascript
运行
复制
DateFormat formatter = new SimpleDateFormat("EEEE", Locale.ENGLISH);
String day = formatter.format(new Date()).toUpperCase();
availabilities.add(Availability.builder()
   .day(day)
   .from(LocalTime.now())
   .to(LocalTime.now())
   .build());

如何获取特定时区的“日期”,并构建一个返回LocalTime对象的LocalTime.now(),但不返回所述时区的当前时间。

例如,在撰写本文时,GMT+8现在是6:25,所以这将是LocalTime.now()返回的时间,而不是位于不同时区的云服务器。

EN

回答 1

Stack Overflow用户

发布于 2020-10-29 06:31:22

SDF和new Date()是旧的API,你不需要它们。例如,Date是一个谎言;它并不代表日期,它实际上代表的是时间上的一个瞬间。这是愚蠢的--这就是为什么有一个新的API。

EDIT:通过调用ZonedDateTimenow方法使其更简单。

代码语言:javascript
运行
复制
private static final ZoneId TARGET_ZONE = ZoneId.of("Singapore");


ZonedDateTime atTarget = ZonedDateTime.now(TARGET_ZONE);
DayOfWeek whatYouWant = atTarget.getDayOfWeek();

注意:你可以显式地使用+8,然后你会寻找一个OffsetDateTimeatOffset(ZoneOffset.ofHours(8)),但那是...真奇怪。谁会想要'UTC+8‘呢?没有人,除了飞机和在特定区域的军事行动,那肯定不是你的目标受众。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64582193

复制
相关文章

相似问题

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