15

我需要一种将 GregorianCalendar 对象转换为 Unix 时间(即长)的方法。还需要一种将 Unix Time (long) 转换回 GregorianCalendar 对象的方法。有什么方法可以做到这一点吗?如果没有,那我该怎么做?任何帮助将不胜感激。

链接到 GregorianCalendar 类 --> http://download.oracle.com/javase/1.4.2/docs/api/java/util/GregorianCalendar.html

谢谢。

4

5 回答 5

31

方法getTimeInMillis()andsetTimeInMillis(long)将让您以毫秒为单位获取和设置时间,这是 unix 时间乘以 1000。您必须手动调整,因为 unix 时间不包括毫秒 - 只有秒。

长 unixTime = gregCal.getTimeInMillis() / 1000;
gregCal.setTimeInMillis(unixTime * 1000);

旁白:如果您在应用程序中大量使用日期,尤其是在转换日期或使用多个时区时,我强烈建议您使用JodaTime库。它比 Java 自带的 Calendar 系统非常完整,而且理解起来也更自然一些。

于 2010-10-25T20:23:08.440 回答
1

我相信GregorianCalendar.getTimeInMillis()GregorianCalendar.SetTimeInMillis()会让您以您想要的方式获取和设置长值。

于 2010-10-25T20:21:05.603 回答
1

查看 setTimeInMillis 和 getTimeInMillis 函数:http: //download.oracle.com/javase/6/docs/api/java/util/Calendar.html#getTimeInMillis ()

于 2010-10-25T20:21:58.880 回答
0

Calendar.getTimeInMillis() 应该是您正在寻找的。

于 2010-10-25T20:22:13.103 回答
0
于 2018-02-15T07:24:12.740 回答