Java 获取特定时区的服务器端代码中的日期/时间
在服务器代码中,我希望获得“Day”,但不是服务器日期/时间,而是特定时区,特别是GMT+8 我有以下代码:Java 获取特定时区的服务器端代码中的日期/时间,java,Java,在服务器代码中,我希望获得“Day”,但不是服务器日期/时间,而是特定时区,特别是GMT+8 我有以下代码: DateFormat格式化程序=新的SimpleDataFormat(“EEEE”,Locale.ENGLISH); String day=formatter.format(new Date()).toUpperCase(); add(Availability.builder()) .日 .from(LocalTime.now()) .to(LocalTime.now()) .build
DateFormat格式化程序=新的SimpleDataFormat(“EEEE”,Locale.ENGLISH);
String day=formatter.format(new Date()).toUpperCase();
add(Availability.builder())
.日
.from(LocalTime.now())
.to(LocalTime.now())
.build());
如何获取特定时区的“天”,并且还必须构建一个LocalTime.now()
,它将返回一个LocalTime
对象,但不返回所述时区的当前时间
例如,在撰写本文时,GMT+8现在是~6:25 am,因此这将是LocalTime.now()
返回的,而不是位于不同时区的云服务器。SDF和new Date()
是旧API,您不需要它们。例如,Date
是一个谎言;它并不代表一个日期,它实际上代表一个瞬间。这是愚蠢的-这就是为什么有一个新的API
编辑:通过调用ZoneDateTime
的now
方法使其更简单
private static final ZoneId TARGET_ZONE = ZoneId.of("Singapore");
ZonedDateTime atTarget = ZonedDateTime.now(TARGET_ZONE);
DayOfWeek whatYouWant = atTarget.getDayOfWeek();
注意:您可以显式地使用+8,然后查找OffsetDateTime
,以及atOffset(ZoneOffset.ofHours(8))
,但这是。。。奇怪的谁可能想要“UTC+8”?没有人,除了某个区域内的飞机和军事行动之外,这肯定不是你的目标受众。SDF和new Date()
都是旧API,你不需要它们。例如,Date
是一个谎言;它并不代表一个日期,它实际上代表一个瞬间。这是愚蠢的-这就是为什么有一个新的API
编辑:通过调用ZoneDateTime
的now
方法使其更简单
private static final ZoneId TARGET_ZONE = ZoneId.of("Singapore");
ZonedDateTime atTarget = ZonedDateTime.now(TARGET_ZONE);
DayOfWeek whatYouWant = atTarget.getDayOfWeek();
注意:您可以显式地使用+8,然后查找
OffsetDateTime
,以及atOffset(ZoneOffset.ofHours(8))
,但这是。。。奇怪的谁可能想要“UTC+8”?没有人,除了某个区域的飞机和军事行动之外,这肯定不是你的目标受众。这回答了你的问题吗?这回答了你的问题吗?为什么不打电话?为什么不打电话?