2

我需要比较一个 android 应用程序中的两个 GregorianCalendar 对象。我试过:

myCalendar.compareTo(otherCalendar)

myCalendar.getTimeInMillis() > otherCalendar.getTimeMillis()

在模拟器中,在 ubuntu 64bit 下运行,两者都可以正常工作。然后我在三星galaxy s2设备上尝试了,但没有成功。真实设备上的比较是倒置的,结果越大越小,反之亦然。在两个系统上打印值:

Long.toString(myCalendar.getTimeMillis())

我发现模拟器中的值 1359716008000(我认为这是正确的)对应于实际设备中的 -636369904720。任何帮助将非常感激!

4

1 回答 1

1

只是为了后代,问题是 GregorianCalendar 值本身,我用

SimpleDateFormat sdf = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss");
myCalendar.setTime(sdf.parse(myStringDate));

它只需要一个

SimpleDateFormat sdf = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss",Locale.US)

如此处所述,模拟器的默认语言环境(可能是美国)与设备(意大利语)不同,所以我认为它在字母中错误地解析了星期几(“EEE”)

于 2013-02-02T17:26:51.213 回答