Java SimpleDateFormat 总是在 1 月返回月份
2022-09-02 00:22:31
我正在努力从Active Directory中获取日期值(createWhen),并将其转换为Java日期,以便获取在两个日期之间创建的帐户列表。一切正常,除了一种方法:我从AD日期到Java日期的方法。该方法如下所示:
private Date getParsedDate(String givenString) {
System.out.println("Value from AD is: " + givenString);
Date parsedDate = null;
String formattedString = this.formatDateString(givenString);
System.out.println("Formatted String is: " + formattedString);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/DD");
try {
parsedDate = sdf.parse(formattedString);
System.out.println("Final date string is: " + parsedDate.toString());
} catch (ParseException ex) {
ex.printStackTrace();
}
return parsedDate;
}
而且,对于来自 AD 的单个任意数据:
Value from AD is: 20050912190509.0Z
Formatted String is: 2005/09/12
Final date string is: Wed Jan 12 00:00:00 EST 2005
显然,它正确地选择了日期和年份(如果我选择包括小时/分钟/秒,它也正确地包括了这些),但是由于某种原因,每个日期都被放在一月份。
现在,我确信我的错误是一个非常简单的错误,但是我已经重新检查了我的格式大约十次,并且我处于无法再看到它的地步。第二双眼睛可以有希望地查看我的代码,并指出我在哪里出错,使这个月如此严重不正确?
谢谢。