如何獲得字符串,格式爲:2008-06-02 00:00:00.0
並將其轉換爲:02-Jun-2008
?Java中的日期轉換
我可以以某種方式把原始的字符串,將其轉換爲Date對象,然後用格式化來獲得最終輸出(而非解析字符串自己)?謝謝!
如何獲得字符串,格式爲:2008-06-02 00:00:00.0
並將其轉換爲:02-Jun-2008
?Java中的日期轉換
我可以以某種方式把原始的字符串,將其轉換爲Date對象,然後用格式化來獲得最終輸出(而非解析字符串自己)?謝謝!
根據模式,您可以使用SimpleDateFormat
在String
和Date
對象之間進行轉換,反之亦然。點擊API鏈接,你會看到模式被詳細解釋。 4位數的年份可以用yyyy
表示,3個字符的月份縮寫可以用MMM
等表示。
首先,你需要解析第一格式的String
成Date
對象:
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
Date date = sdf1.parse(inputString);
然後,你需要格式的Date
爲第二格式的String
:
SimpleDateFormat sdf2 = new SimpleDateFormat("dd-MMM-yyyy", Locale.ENGLISH);
String outputString = sdf2.format(date);
請注意,您還需要考慮Locale
以得到t他將以英文打印月份,否則將使用平臺的默認語言環境翻譯月份。
使用SimpleDateFormat
類的2個實例。一個用於將輸入字符串轉換爲日期和第二個以將日期轉換回字符串,但是採用另一種格式。
DateFormat startFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S");
DateFormat endFormat = new SimpleDateFormat("dd-MM-yyyy");
String outputString = null;
try {
Date date = startFormat.parse(inputString);
outputString = endFormat.format(date);
} catch(ParseException pe) {
throw new IllegalArgumentException(inputString + " is not properly formated.", pe);
}
你絕對可以像其他人推薦的那樣使用SimpleDateFormat類。
另一個建議,如果它適用於你的情況。如果您從sql查詢中獲取這些數據,則還可以使用to_char()方法在查詢中對其進行格式化。例如:TO_CHAR(列名, 'DD-MON-YYYY')
查詢 '可不知何故,我......' 是正確的。進一步調查這條道路。 – KevinDTimm 2010-04-22 16:04:34
沒有人提到過JodaTime。這必須是第一個。 – 2010-04-22 16:08:34
@Paul:他在評論中提到他不想使用外部庫:)這對我來說已經足夠了。 – BalusC 2010-04-22 16:12:00