2012-06-26 72 views
2

我越來越按以下格式的日期(Date,而不是String):更改一個日期格式轉換爲另

Tue Jun 26 07:00:00 EDT 2012 

我想把日期的格式更改爲(日期):

6/26/2012 10:19:15 AM 

以便更新數據庫中的相同內容。我嘗試下面的代碼:

Date dte; 
Date dte1;(Tue Jun 26 07:00:00 EDT 2012) 
SimpleDateFormat formatter = new SimpleDateFormat("m/dd/yyyy hh:mm:ss a"); 
String formattedDate = formatter.format(dte1); 
dte = formatter.parse(formattedDate); 
SystemUtils.trace("test", " date>>>" + dte); 

正在產生以下反應:

Thu Jan 26 07:00:00 EST 2012 

任何一個可以請分享一段代碼儘快這樣做。

+1

那就是'Date'執行'的toString()'方法。如果您打印'formattedDate',您將擁有正確的格式。如果數據庫中的列類型是'varchar',則用'formattedDate'對其進行更新,如果它是日期/時間戳,那麼存儲哪種格式並不重要..畢竟它是日期。 –

回答

5

您不應該格式化日期以將它們插入到數據庫中。如果使用JDBC,則使用預準備語句。

要回答你的問題,但是,m不能意味着分鐘,並在同一時間個月M表示月份。 m表示分鐘

4

需要你這段代碼的輸出結果:

Date dte = new Date();//or something else 
SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss a"); 
String formattedDate = formatter.format(dte); 
System.out.println(formattedDate); 
0

試試這個,這下面的代碼將滿足您的需求。

public class DateWala { 

    public static void main(String[] args){ 

    System.out.println(new SimpleDateFormat("MM/dd/yyyy hh:mm:ss a").format(new Date())); 

    } 

} 
+0

請停止使用'''反引號'''什麼是非代碼。謝謝! – Arjan

+0

@Arjan因此,它的唯一的反引號,我沒有得到任何觀點?它們專注於指向月亮的手指,而是欣賞月亮的美麗。 –

+0

其實,首先我低估了,然後我刪除了downvote並且固定了格式。請不要浪費人們的時間(我不是唯一編輯帖子的人)。也就是說,你發佈的代碼沒有任何解釋。我不贊成這一點。 – Arjan

0

你可以使用這個小功能

// send your time 
private String convertTime(String dateTime) { 
//source format will go there 
SimpleDateFormat sdfSource = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS"); 
    Date date = null; 
    try { 
     date = sdfSource.parse(dateTime); 
    } catch (ParseException e) { 
     e.printStackTrace(); 
    } 
    //destination format will go there 
    SimpleDateFormat sdfDestination = new SimpleDateFormat("dd-MM-yyyy HH:mm"); 

    return sdfDestination.format(date); 
} 
相關問題