2015-01-15 34 views
0

我試圖格式化以下日期日期格式 - 畸形上午

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,但invain。 AM/PM的正確表示是什麼?

我也檢查了「hh:mm a」,但是這再次似乎沒有幫助。

回答

1

Zz是時區的 - 你想a這是半天格式的代碼。

格式化代碼描述了JavaDocorg.joda.time.format.DateTimeFormat

下面的代碼對我的作品

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); 
} 
+0

我有嘗試過和AA也,但(與喬達2.6上的Java 8 JRE運行)它會拋出相同的錯誤。好吧,這是一個額外的空間問題。感謝這工作:) – Skynet

相關問題