GregorianCalendar在android,设备与模拟器之间的差异比较

时间:2013-02-02 14:53:54

标签: android calendar

我需要在Android应用程序中比较两个GregorianCalendar对象。我试过了:

myCalendar.compareTo(otherCalendar)

myCalendar.getTimeInMillis() > otherCalendar.getTimeMillis()

在ubuntu 64bit下运行的模拟器中,两者都可以正常工作。我试着在三星Galaxy s2设备上没有运气。实际设备的比较是倒置的,较大的结果较小而反之亦然。使用以下命令在两个系统上打印值:

Long.toString(myCalendar.getTimeMillis())

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

1 个答案:

答案 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”)错误地表示星期几