如何规范化Android App的日期

Mic*_*cro 8 android

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

这里展示了如何使用以下代码将Java存储为代码中的Java: System.currentTimeMillis()

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

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

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

谢谢.

Jim*_*Jim 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调整过的系统获取时间戳,无论是否正确.这些是困难的时间戳问题.