Ami*_*mar 4 java timezone datetime zoneddatetime
在这段代码中,
Instant i = Instant.ofEpochMilli(inputDate);
ZonedDateTime zonedDateTime = ZonedDateTime.ofInstant(instance, ZoneId.of(marketplaceIdToZoneMap.get(timeZone)));
Run Code Online (Sandbox Code Playgroud)
我只希望这个时区日期时间是一天的结束,
就像 zonedDateTime 的值是:2019-11-14 12:00:99
输出应为 2019-11-14 23:59:59
ass*_*ias 10
如果你想要一天的最后一秒,你可以使用:
ZonedDateTime eod = zonedDateTime.with(LocalTime.of(23, 59, 59));
Run Code Online (Sandbox Code Playgroud)
如果你想要一天中的最长时间,你可以使用:
ZonedDateTime eod = zonedDateTime.with(LocalTime.MAX);
Run Code Online (Sandbox Code Playgroud)
请注意,在某些奇怪的情况下,23:59:59 可能不是特定日期的有效时间(通常是具有复杂时区变化的历史日期)。
一个简单的解决方案是手动设置所需的值:
zonedDateTime.withHour(23).withMinute(59).withSecond(59);
Run Code Online (Sandbox Code Playgroud)
另一种解决方案可能是重置小时/分钟/秒,添加一天,并删除一秒:
zonedDateTime.truncatedTo(ChronoUnit.DAYS).plusDay(1).minusSecond(1);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3017 次 |
| 最近记录: |