我正在使用 joda 包来做一些时间的工作。我很困惑为什么我的模式没有做正确的工作来获得正确的一天,应该是 10。如果我打印出来,它会显示:什么是获取月日--> 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 有问题吗?我需要做什么来修复它?
首先,您对时区使用了错误的模式。使用 Z
而不是 +xxxx
。请参阅日期时间格式 API。
其次,您还应该为格式化程序指定时区,否则它将以您的本地时区格式化。所以如果你的时区是+5:00
,你可能不会得到确切的10
。当然,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());