如何规范化Android App的日期

How to normalize dates for Android App

我想在我的云数据库中所有的日期都存储在一个时区下,然后对于我的所有用户(他们的Android设备可以在世界任何地方),我想用他们默认的Android设置为他们转换和显示日期。

这里展示了如何用Java在代码中存储日期为长:System.currentTimeMillis()

1)但是,如何将日期"规范化"为UTC(这是我听到每个人都说我应该做的事情)?

2)然后,在从云数据库中检索到那个日期之后,我如何用Java将UTC日期转换为应用程序安装在设备上的时区是什么?

据我所知,Android可能会自动完成其中的一些工作,但我不确定要做什么——我也不确定我自己要做什么。有人能为我解释一下上面的内容吗?

谢谢。


根据文档System.currentTimeMillis()返回一个UTC时间戳。换句话说,假设设备在获得时间戳之前已经同步到时间服务器(这很可能),它将不包括时区调整。

http://Deavix.Android /COM/Realth/Java/Lang/Stase.

同样,如果检索时间戳并使用Calendar对象,如果使用Calendar.setTimeInMillis(long milliseconds)对象,Calendar应调整为设备的Locale

http://Deavix.Android /COM/Realth/Java/UTL/Calase.

http://Deavix.Android /COM/Realth/Java/UTL/Calase.htmlμsTimeTimeMILIS(long)

换句话说,你真的不必"正常化"这个信息,Linux / Java为你做这件事。您需要担心的是,从电子邮件、消息或其他系统中获取时间戳,这些系统已经进行了Locale调整,不管是否正确。这些是很难的时间戳问题。