2013-10-18 83 views
3

我們有一些現有的代碼是這樣的:消除DateTimeFormat和喬達的DateTimeFormatter之間的細微空白處理差異

DateFormat[] dateFormats = { 
    new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z", Locale.ENGLISH), 
    new SimpleDateFormat("d MMM yyyy HH:mm:ss Z", Locale.ENGLISH) 
}; 

爲了線程安全起見,我試圖將其轉換爲使用約達時間的格式化,所以:

DateTimeFormatter[] dateFormats = { 
    DateTimeFormat.forPattern("EEE, d MMM yyyy HH:mm:ss Z") 
        .withLocale(Locale.ENGLISH) 
        .withOffsetParsed(), 
    DateTimeFormat.forPattern("d MMM yyyy HH:mm:ss Z") 
        .withLocale(Locale.ENGLISH) 
        .withOffsetParsed() 
}; 

但是,我驚訝地發現現有的測試案例已經破裂。特別是(至少這將導致測試失敗的第一行):

String dateString = "Wed, 1 Feb 2006 21:58:41 +0000"; 

的DateFormat兩個或更多個空間愉快匹配逗號之後但DateTimeFormatter僅字面上單個空間相匹配。

我大概可以放入一個額外的格式來允許額外的空間,但這樣做有點可怕,那麼是否有一種方法可以自定義DateTimeFormatter以更輕鬆地使用空格?

回答

7

我覺得它更容易解析

str = str.replaceAll(" +", " "); 
+0

這是非常誘人的前處理輸入的字符串。 – Trejkaz

+0

我不喜歡這個答案+1 –

相關問題