我正在使用\\/Date\\((\\d+)([-+]\\d+)?\\)\\/
org.joda.time.DateTime
例:
1 - BO日期= /日期(1380891215020 + 0100)/
2 - 解析日期时间BO日期= 2013-10-04T12:53:35.020 + 01:00
3 - Calendar.setTime(DateTime BO日期已解析)= Fri Oct 04 12:53:35 GMT + 01:00 2013
4 - String finalDate = Calendar.getTime()。toString(); = Fri Oct 04 12:53:35 GMT + 01:00 2013
此时一切顺利。现在我想进行日期比较:
Date dateA = mySimpleDateFormat.parse(finalDate);
Calendar cal = Calendar.getInstance();
cal.setTime(dateA);
...
当我使用mySimpeDateFormat
解析某些设备中的finalDate
时
java.text.ParseException:Unparseable date:“Fri Oct 04 12:53:35 WEST 2013“(抵消20)”
被抛出。 HTC One S 是其中一种设备。
电话日期&时间设置:
- 自动日期和时间:真实的
- 自动时区:假
知道为什么有WEST而不是GMT + 01:00?
谢谢你的时间。
答案 0 :(得分:1)
设备区域设置(处理语言和时间)可能是问题所在。 finalDate字符串显然是英文的时间戳,您的设备可能不是。
答案 1 :(得分:1)
我遇到过类似的问题。请改用Calendar cal = Calendar.getInstance(Locale.US);
。在某些设备上,区域设置不是美国,而Calendar.getInstance()
在某些其他区域设置中返回Calendar
。 SimpleDateFormat
也是如此,请尝试使用mySimpleDateFormat = new SimpleDateFormat(format, Locale.US);
。
答案 2 :(得分:0)
找到解决方案!
首先感谢您的回答。
我忘了说我的Locale是Locale.ENGLISH但问题不在那里,它是在第4步:
String finalDate = mySimpleDateFormat.format(Calendar.getTime());
而不是
String finalDate = Calendar.getTime().toString();
现在我的日期格式总是像 Fri Oct 04 12:53:35 GMT + 01:00 2013 ,一切正常;)
谢谢!