-1
我有兩個Date對象,我試圖格式化爲從MM/DD/YYYY
格式到"yyyy-mm-dd HH:mm:ss"
格式。在java中格式化日期
我使用目前的做法是,先用格式的SimpleDateFormat
日期,這將返回兩個Strings
,然後我有這個字符串轉換回日期以獲得格式化最終Date
對象。
所以我想知道是否有一個更簡單的方法來更改日期對象格式,而不用在很多步驟?
謝謝
我有兩個Date對象,我試圖格式化爲從MM/DD/YYYY
格式到"yyyy-mm-dd HH:mm:ss"
格式。在java中格式化日期
我使用目前的做法是,先用格式的SimpleDateFormat
日期,這將返回兩個Strings
,然後我有這個字符串轉換回日期以獲得格式化最終Date
對象。
所以我想知道是否有一個更簡單的方法來更改日期對象格式,而不用在很多步驟?
謝謝
格式是不相關的。 Date
只是表示Unix紀元以來的毫秒數。
請記住,Date
沒有格式的概念,它並不在意。
您應該簡單地格式化你需要的任何格式程序的Date
對象...
例如...
Date date = new Date();
System.out.println(date);
System.out.println(DateFormat.getDateTimeInstance().format(date));
System.out.println(new SimpleDateFormat("dd/MM/yyyy").format(date));
System.out.println(new SimpleDateFormat("yyyy MMMM EE").format(date));
System.out.println(new SimpleDateFormat("EEEE MMMM yyyy").format(date));
System.out.println(date);
輸出...
Wed Jan 22 11:55:18 EST 2014
22/01/2014 11:55:18 AM
22/01/2014
2014 January Wed
Wednesday January 2014
Wed Jan 22 11:55:18 EST 2014
注意如何第一併且最後的值不會改變。 Date
沒有格式的內部概念,這是格式化程序的責任。
例如,如果我把String
價值22/01/2014
和使用SimpleDateFormat
Date date = new SimpleDateFormat("dd/MM/yyyy").parse("22/01/2014");
解析回一個Date
然後輸出的date
值...
System.out.println(date);
將輸出的東西像...
Wed Jan 22 00:00:00 EST 2014
格式已丟失。這將需要使用適當的格式化程序來改變顯示內容
如果我在這裏正確理解你,你的意思是,如果我有例如Date1對象,無論我如何格式化它的日期,它將保持相同的原始它以前的格式。所以要使用格式化日期,我必須從SimpleDateFormat或DateFormatter中獲取字符串輸出...正確嗎? – MChan
取一個'String',將其解析爲'Date'(對輸入'String'使用合適的格式化程序)。一旦你有了Date,你就可以將它傳遞給你想要的任何格式化器,並且它不會以任何方式改變Date對象。看看我在問題末尾鏈接的示例 – MadProgrammer
您提供的示例假定我最初擁有帶日期的字符串,但情況並非如此。我最初有一個日期對象與我需要格式化的日期...有道理? – MChan