我无法理解JodaTime在日期之后忽略AM / PM的原因,例如
public static void main(String[] args) {
DateTimeFormatter fmt = DateTimeFormat.forPattern("dd/MM/yy HH:mm:ss a");
System.out.println(fmt.parseDateTime("23/06/2016 1:00:00 PM").toString("dd/MM/yy HH:mm:ss a"));
System.out.println(fmt.parseDateTime("23/06/2016 1:00:00 AM").toString("dd/MM/yy HH:mm:ss a"));
}
,输出
23/06/16 01:00:00 AM
23/06/16 01:00:00 AM
正如您所看到的,输入日期时间相隔12小时,但在解析后转换回字符串时,它们都是同一时间。
修改: 感谢Sotirios Delimanolis,正确的做法是使用" hh"而不是" HH":
public static void main(String[] args) {
DateTimeFormatter fmt = DateTimeFormat.forPattern("dd/MM/yy hh:mm:ss a");
System.out.println(fmt.parseDateTime("23/06/2016 1:00:00 PM").toString("dd/MM/yy hh:mm:ss a"));
System.out.println(fmt.parseDateTime("23/06/2016 1:00:00 AM").toString("dd/MM/yy hh:mm:ss a"));
}
,输出
23/06/16 01:00:00 PM
23/06/16 01:00:00 AM
答案 0 :(得分:4)