我正在使用joda包来完成我的一些工作。我很困惑,为什么我的模式没有做正确的工作来获得正确的一天,应该是10.如果我将它打印出来,它会显示: 什么是getDayOfMonth - > 14
public void testTime() {
String startDate = "Fri, 10 Jan 2015 23:10:04 +0000";
String pattern = "EEE, dd MMM yyyy HH:mm:ss +xxxx";
DateTimeFormatter fmt = DateTimeFormat.forPattern(pattern);
DateTime time1 = fmt.parseDateTime(startDate);
System.out.println("what is the getDayOfMonth --> " + time1.getDayOfMonth());
}
EEE存在问题吗?我需要做些什么来解决它?
答案 0 :(得分:2)
首先,你使用了错误的时区模式。使用Z
代替+xxxx
。请参阅DateTimeFormat API。
其次,您还应该为格式化程序指定时区,否则它将在您的本地时区格式化。因此,如果您的时区为10
,则可能无法准确+5:00
。当然, 1月10日是星期六,而不是星期五。总之,以下应该可以正常工作:
String startDate = "Sat, 10 Jan 2015 23:10:04 +0000";
String pattern = "EEE, dd MMM yyyy HH:mm:ss Z";
DateTimeFormatter fmt = DateTimeFormat.forPattern(pattern).withZone(DateTimeZone.UTC);
DateTime time1 = fmt.parseDateTime(startDate);
System.out.println("what is the getDayOfMonth --> " + time1.getDayOfMonth());