2013-08-23 42 views
0
SimpleDateFormat p = new SimpleDateFormat("MM-dd-yyyy"); 
String formatDate = p.format(temp.EXPIRATION_DATE()); 

//EXPIRATION_DATE is a DATE data type. 

我能夠得到的輸出如預期,但是當我試圖將其設置回我, 需要所需的輸出是在DATE類型不是字符串。 但如果分析它OT嘗試用DATE鑄造,就像這樣從YYYY-MM-DD以YYYY/MM更改日期格式/ DD

DateFormat formatter = new SimpleDateFormat("MM-dd-yyyy"); 
convertedDate = (Date) formatter.format(date); 

我的輸出來這樣的:

Fri Aug 23 16:07:11 EDT 2013. 

我需要的輸出是在2013/08/23格式,它應該是在DATE數據類型。 有什麼辦法可以做到這一點。 感謝

+4

格式是顯示的目的,解析是表示日期。我認爲你對理解用法感到困惑。 – kosa

+1

您不喜歡的輸出是當您嘗試直接打印Date對象時看到的內容(您正在查看'Date.toString()'的輸出)。如果要顯示給定日期的特定格式,請在指定所需格式後使用'SimpleDateFormat.format()'。 – jahroy

+0

您應該將Date對象看作僅僅是表示即時時間的數字的包裝。數值是1970年1月1日以來的毫秒數。要將日期轉換爲具有指定格式的人類可讀字符串,可以使用SimpleDateFormat來_create_字符串_ from_日期。 – jahroy

回答

1
package com.sandbox; 

import java.io.IOException; 
import java.text.SimpleDateFormat; 
import java.util.Date; 

public class Sandbox { 

    public static void main(String[] args) throws IOException { 
     SimpleDateFormat p = new SimpleDateFormat("yyyy/MM/dd"); 
     String formatDate = p.format(new Date()); 
     System.out.println(formatDate); 
    } 


} 

format返回格式化的日期。它不修改Date對象。如果您想以格式打印日期,則必須打印出format的回覆。

+0

@jahroy更新,謝謝 –

+0

如何更新我的日期對象到2013/08/12,它試圖使用新的SimpleDateFormat(「yyyy/MM/dd」);我能夠改變它,但是當我嘗試上傳我的對象時,它在String中是可用的。 – user2593318

1

使用new SimpleDateFormat("yyyy/MM/dd");

1

我需要的輸出是在2013/08/23格式,它應該是在DATE數據類型。有什麼辦法可以做到這一點。

不,那是不可能的。

A Date對象只包含日期值。它沒有關於顯示日期的格式的任何信息。要以某種格式顯示日期,您可以使用SimpleDateFormat - 您在SimpleDateFormat對象上指定格式,然後使用它將Date轉換爲String