我需要在Android应用程序中比较两个GregorianCalendar对象。我试过了:
myCalendar.compareTo(otherCalendar)
myCalendar.getTimeInMillis() > otherCalendar.getTimeMillis()
在ubuntu 64bit下运行的模拟器中,两者都可以正常工作。我试着在三星Galaxy s2设备上没有运气。实际设备的比较是倒置的,较大的结果较小而反之亦然。使用以下命令在两个系统上打印值:
Long.toString(myCalendar.getTimeMillis())
我发现模拟器中的值为1359716008000(我认为这是正确的)对应于实际设备中的-636369904720。 任何帮助都会非常感激!
答案 0 :(得分: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)
如here所述,模拟器的默认语言环境(可能是美国)与设备(意大利语)的默认语言环境不同,所以我认为它是用字母(“EEE”)错误地表示星期几