2 回答
TA贡献1719条经验 获得超6个赞
时间
ZoneId here = ZoneId.of("America/Danmarkshavn");
ZonedDateTime now = ZonedDateTime.now(here);
ZonedDateTime nextMondayAtThree = now.with(TemporalAdjusters.next(DayOfWeek.MONDAY))
.with(LocalTime.of(3, 0));
long secondsUntilMonday = ChronoUnit.SECONDS.between(now, nextMondayAtThree);
System.out.println(nextMondayAtThree);
System.out.println("Seconds: " + secondsUntilMonday);
请替换您的时区,因为它可能不是美国/丹麦港。
我还邀请您不仅要比较行数,还要比较使用过时Calendar
类的答案与阅读的难易程度(不要误解我:如果您想使用Calendar
该类,那将是一个很好的答案;我只是不要认为您Calendar
在比较时会想要使用该类)。
问题:我可以java.time
在 Android API 级别 16 及更高级别上使用吗?
是的,java.time
在较旧和较新的 Android 设备上都能很好地工作。它只需要至少Java 6。
在 Java 8 及更高版本以及新的 Android 设备上(有人告诉我,从 API 级别 26 开始)新的 API 是内置的。
在 Java 6 和 7 中获得 ThreeTen Backport,新类的后向移植(ThreeTen for JSR 310,现代 API 在此处首次被描述)。
在(较旧的)Android 上,使用 ThreeTen Backport 的 Android 版本。它被称为 ThreeTenABP。确保从包
org.threeten.bp
和子包中导入日期和时间类。
添加回答
举报