我正在尝试编写一个代码,计算在特定时区到午夜还有几秒钟的时间。
我定位的时区是EDT,即“ GMT-04:00”。
我发现许多主题涉及时间计算,但是没有一个主题帮助我弄清楚计算特定时区中午夜十二点的技巧。
有人能指出我正确的方向吗?
谢谢。
答案 0 :(得分:0)
我相信这是您要寻找的逻辑? (不要只问第一个答案,而是指日历,语言环境和时区)
https://stackoverflow.com/a/39757060/1552960
使用日历和时区来计算确切时间,然后只需使用该日历对象来查找午夜另一个设置的日历对象之间的时差:)
长期差异InMillis = midnightCalendarObject.getTimeInMillis()-calendarObject.getTimeInMillis();
long secondsUntilMidnight = TimeUnit.toSeconds(differenceInMillis);
答案 1 :(得分:0)
ZoneId zone = ZoneId.of("America/New_York");
ZonedDateTime now = ZonedDateTime.now(zone);
ZonedDateTime midnight = now.toLocalDate().plusDays(1).atStartOfDay(zone);
long secondsLeftTillMidnight = Duration.between(now, midnight).getSeconds();
System.out.println("Seconds till midnight: " + secondsLeftTillMidnight
+ ". Time now: " + now + '.');
现在输出:
秒至午夜:34801。现在时间:2018-10-01T14:19:58.651572-04:00 [America / New_York]。
java.time
吗?是的,java.time
在Android设备上运行良好。它只需要至少 Java 6 。
org.threeten.bp
和子包中导入日期和时间类。java.time
。