乔达时间模式不正确?显示错误的日期
Joda time pattern incorrect? Showing wrong day
我正在使用 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 有问题吗?我需要做什么来修复它?
首先,您使用的时区模式有误。使用 Z
而不是 +xxxx
。参见 DateTimeFormat 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());
我正在使用 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 有问题吗?我需要做什么来修复它?
首先,您使用的时区模式有误。使用 Z
而不是 +xxxx
。参见 DateTimeFormat 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());