【发布时间】:2023-03-03 18:35:01
【问题描述】:
我想使用从 android API 获得的 long 值,该值返回我的日期为 long,表示为自 Epoch 以来的毫秒数。
我需要使用 isBefore() plusDays() isAfter() 之类的方法
Cursor managedCursor = getContentResolver().query(CallLog.Calls.CONTENT_URI,
new String[]{"number", "type", "date", "duration", "name"},
null, null, strOrder);
在 java 中我可以使用 LocalDate 和 LocalTime 类来处理这个问题,不幸的是这些类在 android 上不存在,那么在 android 上有哪些类可用类似于 localdate 和 localtime?
【问题讨论】:
-
我需要允许我对日期和时间进行操作的类,例如 plusDays()、isAfter()、isBefore() ...等等,而不是获取当前时间!!!! @AndroidHacker
-
查看此副本以了解有关 Adroid 适应 Java 8 中内置的大部分 java.time 框架的后端端口的信息,该框架取代了麻烦的旧日期时间类。 stackoverflow.com/q/22525857
-
我建议使用这个库:github.com/JakeWharton/ThreeTenABP。要从 epoch ms 创建 LocalDate,您可以使用:
Instant.ofEpochMilli(epochMilli).atZone(ZoneId.ofOffset("UTC", ZoneOffset.ofHours(0))).toLocalDate()。您可以更改此调用的结尾以转换为您想要的任何内容。
标签: java android date datetime time