2014-03-12 83 views
0

我就像在這個問題上的兩天。這是從這個問題的延續:convert string to joda datetime gets stuck如何將日期轉換爲DateTime或LocalDate Joda

我想執行一個簡單的任務,採取SQL SERVER ISO 8601字符串並將其轉換爲DateTime或LocalDate。我嘗試了一切,但是當涉及到使用調試器進行的實際轉換時,程序光標只是用於思考而不會返回,即程序停留在此處。

我真的很絕望,我甚至試圖將該字符串轉換爲日期(它工作!),然後將該日期轉換爲DateTime或LocalDate。所有的結果都一樣,在轉換線上,程序看起來像停留在一些無限循環(並且風扇開始瘋狂地工作)。

這是我這麼簡單的功能:

public static LocalDate SQLServerIso8601StringToLocalDate(String date) { 

     LocalDate dateToReturn = null; 
     DateFormat df = new SimpleDateFormat(CONSTS_APP_GENERAL.SQL_SERVER_DATE_FORMAT); 
     try { 
      Date tempDate = (Date) df.parse(date); 
      DateTime dt = new DateTime(tempDate); 
      dateToReturn = new LocalDate(tempDate); 

     } catch (ParseException e) { 
      // strToReturn = strSqlDate; 
     } 
     return dateToReturn; 

/*  
     date = date.replace('T', ' '); 
     return SimpleIso8601StringToDateTime(date); 
*/ 
     //return LocalDate.parse(date, DateTimeFormat.forPattern(CONSTS_APP_GENERAL.SQL_SERVER_DATE_FORMAT)); 

/*  DateTimeFormatter df = DateTimeFormat.forPattern(CONSTS_APP_GENERAL.SQL_SERVER_DATE_FORMAT_WITH_TZ); 
     return df.parseDateTime(date); 
*/ } 

這是我的字符串:2014-01-01T00:00:00

也:

public static final String SQL_SERVER_DATE_FORMAT = "yyyy-MM-dd'T'HH:mm:ss"; 

任何想法?

+0

你想說'新的LocalDate(tempDate);'讓你的電腦永遠忙於工作,等於具體的java.util.Date作爲輸入嗎? –

回答

1
public static Date getDateFromString(String format, String dateStr) { 
    DateFormat formatter = new SimpleDateFormat(format); 
    Date date = null; 
    try { 
     date = (Date) formatter.parse(dateStr); 
    } catch (ParseException e) { 
     e.printStackTrace(); 
    } 

    return date; 
} 
+0

謝謝。轉換爲日期的作品。但我需要它在DateTime或LocalDate中,並且這個卡住了程序。 – dsb

+0

public static String getDate(Date date,String dateFormat){ \t \t DateFormat formatter = new SimpleDateFormat(dateFormat); \t \t return formatter.format(date); \t} –

+0

是你需要的嗎?你有日期對象,你可以做任何你想做的事情 –

相關問題