Android java.time.LocalDateTime

时间:2017-04-16 15:55:01

标签: java android time

我正在编写一个Android应用程序,它应该通过我在服务器端开发的HTTP REST API接收java.time.LocalDateTime对象。

问题是Android仍然在Java 7中,而java.time仅在Java 8中可用。

话虽如此,在Android中表示包含日期和时间的变量的最佳方法是什么?我不想使用sql.timestamp。

谢谢!

5 个答案:

答案 0 :(得分:4)

回到端口

您可以使用ThreeTen Android Backport这是对原版ThreeTen-Backport的Android适应性,它将大部分新java.time api反向移植回Java SE 6和SE 7。

请参阅this answer开始使用。

答案 1 :(得分:2)

为什么要使用Java 8之前的DateCalendar,而Joda-time的Android版本(非常接近Java 8日期)可用?

以下是GIT回购/网站的更多信息:

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

答案 2 :(得分:1)

使用Java 7中提供的java.util.Calendar。有关更多信息,请参阅以下链接: https://developer.android.com/reference/java/util/Calendar.html

Calendar rightNow = Calendar.getInstance(); //initialized with the current date and time

答案 3 :(得分:1)

如果你的minSdkVersion是26(Android 8.0)1

,你可以使用LocalDateTime

答案 4 :(得分:0)

LocalDateTime对象已通过HTTP REST API序列化为string | long JSON属性。

所以你要做的就是将JSON属性改编为Date对象,如果要将Date对象发送到服务器,请将Date对象格式化为JSON属性只接受LocalDateTime对象。

几乎所有JSON库都提供dateFormatstring序列化/反序列化Date, 并将长timestamp转换为Date非常简单:

Date date = new Date(timestamp);