2015-04-02 87 views
1

我無法弄清楚爲什麼這段代碼不起作用。任何人都可以幫我無法解析字符串日期格式

String dateStr = "Thu Apr 02 09:49:16 CEST 2015"; 
DateFormat readFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy"); 

DateFormat writeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
Date date = null; 
     try { 
      date = readFormat.parse(dateStr); 
     } catch (ParseException e) { 
      e.printStackTrace(); 
     } 

     String formattedDate = ""; 
     if (date != null) { 
      formattedDate = writeFormat.format(date); 
     } 

     System.out.println(formattedDate); 

我的閱讀格式應該是好的,除非我失去了一些東西。

我總是得到一個java.text.ParseException:無法解析的日期: 「週四4月2日9時49分16秒CEST 2015」

在線:日期= readFormat.parse(dateStr);

我試過http://ideone.com/oBwtQo上的代碼,它也在那裏工作。爲什麼不在我的PC上的NetBeans中進行此項工作。

回答

3

試試這個

DateFormat readFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.US); 
1

的代碼工作正常,請檢查您的進口,你將這些類

import java.text.DateFormat; 
import java.text.ParseException; 
import java.text.SimpleDateFormat; 
import java.util.Date; 
1

這一個是可以正常使用

import java.text.DateFormat; 
import java.text.ParseException; 
import java.text.SimpleDateFormat; 
import java.util.Date; 

public class Test { 
public static void main(String[] args) 
{ 
    String dateStr = "Thu Apr 02 09:49:16 CEST 2015"; 
    DateFormat readFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy"); 
    DateFormat writeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
    Date date = null; 
    try { 
     date = readFormat.parse(dateStr); 
    } catch (ParseException e) { 
     e.printStackTrace(); 
    } 
    String formattedDate = ""; 
    if (date != null) { 
     formattedDate = writeFormat.format(date); 
    } 
    System.out.println(formattedDate); 
    } 
} 

輸出:2015 - 04-02 13:19:16

請檢查您的進口號