[英]Date Conversion error in Java
我正在嘗試將類型“ Mon Jan 14 00:00:00 GMT-12:00 2013”的日期轉換為java.sql.Date yyyy / MM / dd類型,我編寫了以下代碼。 在嘗試執行以下代碼時,出現“無法解析的日期”錯誤。請幫助我解決以下問題。
DateFormat df = new SimpleDateFormat("yyyy/MM/dd");
try{
java.sql.Date xdate=new java.sql.Date(df.parse("Mon Jan 14 00:00:00 GMT-12:00 2013").getTime());
System.out.println(xdate.toString());
}catch(Exception x)
{
System.out.println(x.getMessage());
}
與其他答案一樣,您正在使用錯誤的模式來解析已獲取的日期字符串。
實際上,您將需要該模式,但要將Date
對象轉換為所需的模式。 但是首先,您需要獲取給定日期字符串的Date
對象。 為此,您需要構建與您的字符串完全匹配的模式。
日期格式有兩個方面:-
因此,您首先需要使用具有不同模式的DateFormat#parse()
,然后使用DateFormat#format()
。
因此,這是您需要的代碼:-
String fromDate = "Mon Jan 14 00:00:00 GMT-12:00 2013";
Date date = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy").parse(fromDate);
java.sql.Date toDate = new java.sql.Date(date.getTime());
System.out.println(new SimpleDateFormat("yyyy/MM/dd").format(toDate));
您正在使用
new SimpleDateFormat("yyyy/MM/dd")
因此yyyy/MM/dd
嘗試以Mon Jan 14 00:00:00 GMT-12:00 2013
格式解析日期時,將要解析的日期字符串轉換為yyyy/MM/dd
格式,它將被解析。
嗯,您提供的日期不是您提供的格式。 您有一個ISO字符串作為參數,但是格式化程序需要“ yyyy / MM / dd”。 您為什么期望這行得通?
嘗試
DateFormat df = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyyy", Locale.US);
如果您的母語不是英語,並且您要解析Mon
和Jan
則需要Locale.US。 日期解析器可能對語言敏感,例如在我們的例子中
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.