使用 JODA 的日期格式化 - AM 格式错误
Date formatting using JODA - Malformed at AM
我正在尝试格式化以下日期
Thu, 15 Jan 2015, 9:56 AM
使用以下内容:
public String parse(String oldDate){
final String OLD_FORMAT = "EEE, d MMM yyyy, HH:mm:ss zz";
final String NEW_FORMAT = "yyyy/MM/dd";
// August 12, 2010
String oldDateString = oldDate;
String newDateString;
DateTimeFormatter formatterOld = DateTimeFormat.forPattern(OLD_FORMAT);
DateTimeFormatter formatterNew = DateTimeFormat.forPattern(NEW_FORMAT);
LocalDate localDate = formatterOld.parseLocalDate( oldDateString );
return newDateString = formatterNew.print( localDate );
}
我得到一个
Caused by: java.lang.IllegalArgumentException: Invalid format: "Thu, 15 Jan 2015, 9:56 AM" is malformed at " AM"
如何以该日期格式正确表示 AM/PM?我尝试使用 Z 但得到相同并更改为 zz 但无济于事。 AM/PM 的正确表示是什么?
我也和 "hh:mm a" 核实过,但这似乎也没有帮助。
Z
和 z
用于时区 - 您需要 a
这是 half-day.[= 的格式代码16=]
org.joda.time.format.DateTimeFormat
的 JavaDoc 中描述了格式代码
下面的代码对我有用(运行 在 Java 8 JRE 和 Joda 2.6 上)
public static void main(String[] args) {
String format = "EEE, d MMM yyyy, HH:mm a";
DateTimeFormatter formatter = DateTimeFormat.forPattern(format);
final LocalDate date = formatter.parseLocalDate("Thu, 15 Jan 2015, 9:56 AM");
System.out.println(date);
}
我正在尝试格式化以下日期
Thu, 15 Jan 2015, 9:56 AM
使用以下内容:
public String parse(String oldDate){
final String OLD_FORMAT = "EEE, d MMM yyyy, HH:mm:ss zz";
final String NEW_FORMAT = "yyyy/MM/dd";
// August 12, 2010
String oldDateString = oldDate;
String newDateString;
DateTimeFormatter formatterOld = DateTimeFormat.forPattern(OLD_FORMAT);
DateTimeFormatter formatterNew = DateTimeFormat.forPattern(NEW_FORMAT);
LocalDate localDate = formatterOld.parseLocalDate( oldDateString );
return newDateString = formatterNew.print( localDate );
}
我得到一个
Caused by: java.lang.IllegalArgumentException: Invalid format: "Thu, 15 Jan 2015, 9:56 AM" is malformed at " AM"
如何以该日期格式正确表示 AM/PM?我尝试使用 Z 但得到相同并更改为 zz 但无济于事。 AM/PM 的正确表示是什么?
我也和 "hh:mm a" 核实过,但这似乎也没有帮助。
Z
和 z
用于时区 - 您需要 a
这是 half-day.[= 的格式代码16=]
org.joda.time.format.DateTimeFormat
下面的代码对我有用(运行 在 Java 8 JRE 和 Joda 2.6 上)
public static void main(String[] args) {
String format = "EEE, d MMM yyyy, HH:mm a";
DateTimeFormatter formatter = DateTimeFormat.forPattern(format);
final LocalDate date = formatter.parseLocalDate("Thu, 15 Jan 2015, 9:56 AM");
System.out.println(date);
}