簡體   English   中英

Java將日期格式從自定義日期更改為MM dd yyyy

[英]Java change date format from custom date to MM dd yyyy

我試圖將存儲在數據庫中的字符串值(例如“2012-01-20”)轉換為2012年1月20日的格式。

我看過一些例子,但他們使用的是與SimpleDateFormat一起使用的Date

作為一個例子,我嘗試了一種方法,但“try”總是失敗,結果為null

DateFormat df = new SimpleDateFormat("MM/dd/yyyy");
Date convertedDate=null;

try {

    convertedDate = df.parse(datePlayed);                   

} catch(ParseException e){
    e.printStackTrace();
}   

簡而言之,您沒有使用正確的格式進行解析。 您需要使用兩個 DateFormat實例; 一個用於解析,一個用於格式化。

DateFormat parser = new SimpleDateFormat("yyyy-MM-dd");
DateFormat formatter = new SimpleDateFormat("MMM dd, yyyy");
Date convertedDate = parser.parse(datePlayed);
String output = formatter.format(convertedDate);
Date da = new Date();
SimpleDateFormat ft = new SimpleDateFormat("E, dd/MM/yyyy !");
System.out.println("Update : " + ft.format(da));

您可以根據需要更改日期樣式: E, dd/MM/yyyy !

祝好運 !

如果從數據庫中讀取日期,則將其存儲為java.sql.Date。 然后,您可以在其上使用SimpleDateFormat,也許在轉換為java.util.Date之后。 從ResultSet對象中,您可以提取日期。

如果你的意思是你給了一個由其他人從數據庫中提取的文本日期,你就會被它堅持下去。 嘗試使用:

 DateFormat df = new SimpleDateFormat("yyyy-MM-dd");  
 df.setLenient(true);  
 convertedDate = df.parse(datePlayed.trim() );

在解析之前還要嘗試顯示要解析的文本,以確保datePlayed值符合您的預期。 使用parseInt ,數據之前或之后的額外空格將導致錯誤,因此調用trim()會刪除多余的空格。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM