我正在编写一个Android应用程序,它应该通过我在服务器端开发的HTTP REST API接收java.time.LocalDateTime对象。
问题是Android仍然在Java 7中,而java.time仅在Java 8中可用。
话虽如此,在Android中表示包含日期和时间的变量的最佳方法是什么?我不想使用sql.timestamp。
谢谢!
答案 0 :(得分:4)
您可以使用ThreeTen Android Backport这是对原版ThreeTen-Backport的Android适应性,它将大部分新java.time
api反向移植回Java SE 6和SE 7。
请参阅this answer开始使用。
答案 1 :(得分:2)
为什么要使用Java 8之前的Date
或Calendar
,而Joda-time的Android版本(非常接近Java 8日期)可用?
以下是GIT回购/网站的更多信息:
答案 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库都提供dateFormat
来string
序列化/反序列化Date
,
并将长timestamp
转换为Date
非常简单:
Date date = new Date(timestamp);