如何在API级别低于26的情况下为LocalDateTime添加持续时间

10

我正在开发一个面向API 19(KitKat)的应用。

我有一个LocalDateTime对象和一个Duration对象。我需要将这个Duration添加到LocalDateTime中。

Android Studio显示,LocalDateTime类的plus(TemporalAmount)方法是从API级别26(Oreo)开始提供支持的,目前仅支持不到1%的设备。

在API级别19下我该怎么做?


整个 LocalDateTime 类应该只存在于 API 26 中,因此您需要在 API 19 中使用其他时间方式。 - deekay
1
你有什么建议,Deekay? - fpiechowski
5
您可以使用ThreeTen Backport: http://www.threeten.org/threetenbp/ 您还需要ThreeTenABP:https://github.com/JakeWharton/ThreeTenABP 这里有一个教程:https://dev59.com/hFkT5IYBdhLWcg3wNs3- 但是,您需要更改导入的类以使用后端端口的类(从 java.time 更改为 org.threeten.bp)。 - bbb
2个回答

8

1
这是一个很棒的答案,省了我很多时间,谢谢。 - bobtune

3

对于Android Gradle插件4.0.0+:

使用Java Desugaring功能,这样你就可以在API级别低于26的情况下无问题地使用Java 8日期库。有关更多详细信息,请阅读此文档

旧答案:

评论中的bbb答案是正确的。

目前在Android上最好的选择是ThreeTenABP。Jake Wharton解释了为什么在Android中使用此库而不是Joda-Time和ThreeTenBP更好。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接