如何规范化Android App的日期

时间:2015-10-13 18:35:25

标签: android

我想在一个时区内将所有日期存储在我的云数据库中,然后为我的所有用户(其Android设备可能位于世界上的任何地方)存储日期,我希望将该日期转换并显示给他们,无论他们是什么默认的Android设置是。

Here它显示了如何使用以下代码将Java存储为代码中的Java: System.currentTimeMillis()

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

2)然后,在从Cloud DB检索到该日期之后,我如何使用Java将该UTC日期转换为安装该应用程序的设备的时区?

从我收集的内容来看,Android可能会自动执行这些操作,但我不确定是什么 - 而且我不确定自己要做什么。有人可以为我澄清上述内容吗?

感谢。

1 个答案:

答案 0 :(得分:6)

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

http://developer.android.com/reference/java/lang/System.html#currentTimeMillis()

同样,如果您检索时间戳并使用Calendar对象,则Calendar如果您使用Locale

,则应调整为设备的Calendar.setTimeInMillis(long milliseconds)

http://developer.android.com/reference/java/util/Calendar.html#Calendar()

http://developer.android.com/reference/java/util/Calendar.html#setTimeInMillis(long)

换句话说,你真的不需要“规范化”这些信息,Linux / Java会为你做这件事。您需要担心的是从已经进行Locale调整的电子邮件,消息或其他系统获取时间戳,无论是否正确。这些是困难的时间戳问题。