【问题标题】:What are the alternative classes for localTime and localDate in Android? [duplicate]Android 中 localTime 和 localDate 的替代类是什么? [复制]
【发布时间】: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?

【问题讨论】:

  • 你可以查看这个问题stackoverflow.com/questions/5369682/…
  • 我需要允许我对日期和时间进行操作的类,例如 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


【解决方案1】:

https://github.com/dlew/joda-time-android

这是 Android 中最常用于时间的库。尺寸有点重,但如果这不是问题,那么它比使用 Android 给你的 utils 更好

【讨论】:

  • Joda-Time 团队建议迁移到 java.time 框架。请参阅 ThreeTenABP 项目。
  • @BasilBourque 是的,我看到了,但是这只适用于 java 8,而且现在 Android 似乎不太向后兼容。我建议 JodaTime 用于 Java 7 及之前的版本,它要好得多
  • 关于在 Android 中使用 java.time 功能,请参阅How to use ThreeTenABP in Android Project。请注意新的 API 脱糖功能以及 ThreeTenABP
猜你喜欢
  • 2021-07-21
  • 1970-01-01
  • 2017-04-23
  • 1970-01-01
  • 1970-01-01
  • 2011-01-09
  • 1970-01-01
  • 2021-11-08
相关资源
最近更新 更多