Android时间与Java时间之间的转换

问题描述 投票:5回答:2

我在Android手机(Nexus One)和Java服务器之间进行时间转换时遇到了一些麻烦。我读过的所有内容都说它们是相同的,但是当我转换很长的时间戳时,我似乎要浪费1小时(完全是)。

特别是,如果我在android设备上运行以下代码,则会得到以下输出

代码:

Calendar g = Calendar.getInstance();
g.setTimeInMillis(1340661899000L);
Log.d(TAG, g.getTime().toLocaleString());

输出:2012年6月25日6:04:59 PM

我认为这是正确的,但是当我在Java服务器上运行完全相同的代码时,我得到的是同一天,但要早1个小时

代码:

Calendar g = Calendar.getInstance();
g.setTimeInMillis(1340661899000L);
System.out.println(g.getTime().toLocaleString());

输出:2012年6月25日下午5:04:59

有人知道是什么原因造成的吗?手机上的服务器和服务器都位于同一位置(这并不重要),服务器盒和手机上的时钟都匹配

java android calendar
2个回答
4
投票

考虑到相差一小时,您能否在服务器而不是电话上设置DST(夏时制),反之亦然?


1
投票

克里斯想说的是,您的电话和服务器可能配置为不同的时区。

尝试打印cal.getTimeZone()的结果。如果这是您要选择用于通信的时区的问题。例如:

Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT+0"));

根据JavaDocs,日历实例使用由以下人员报告的默认时区:

TimeZone.getDefault()

尽管您的服务器和移动设备被设置为相同的TimeZone,但不一定表示它们使用相同的默认TimeZone。

© www.soinside.com 2019 - 2024. All rights reserved.