我有一个要转换为日期的时间戳。我试过这个时间戳:1336425840。这应该是星期一,2012 年 5 月 7 日 21:24:00 GMT,其中 GMT 是模拟器应该设置的时区。我试过这个:
final Calendar c = Calendar.getInstance();
c.setTimeInMillis(1336425840*1000);
Date d = c.getTime();
Log.i("MyTag", "Hours: " + d.getHours());
结果是:小时:23。
所以看起来返回的日期是根据 GMT+2 计算的,这是为我的系统设置的时区。我希望 g.hetHours() 返回 21,因为模拟器的时区似乎设置为 GMT。
此外,该时间戳是通过使用 mktime 读取 C 中的实际日期产生的,这似乎返回了正确的时间戳。但 Java 似乎指的是不同的时区。我做错什么了吗?为什么 2012 年 5 月 7 日星期一 21:24:00 GMT 没有返回?