簡體   English   中英

使用SimpleDateFormat將直接日期轉換為字符串

[英]Converting direct Date to String using SimpleDateFormat

我知道這可能是一個愚蠢的問題,但是我很難用SimpleDateFormat將Date轉換為字符串。 我有一個本地約會

“ PDT 2013年7月18日星期四18:56:51”

我正在嘗試將其直接轉換為格式

“ yyyy-MM-dd'T'hh:mm:ss”。

我想要的字符串看起來像這樣:

“ 2013-07-18T18:56:51”

我得到的是:

“ 2013-07-18T06:56:51”

任何幫助,將不勝感激。

您正在使用hh ,這是12小時制。 您想改用HH

"yyyy-MM-dd'T'HH:mm:ss"

來自SimpleDateFormat文檔

  • hh-上午/下午的小時數(1-12)
  • HH-每小時(0-23)
  • kk-每小時(1-24)
  • KK-上午/下午的時間(0-11)

(很奇怪為什么他們將kk / KK的12/24小時大寫字母反轉了,但這超出了我的kk ,但是隨后整個Java日期/時間API都變得很瘋狂...)

另外,雖然看起來您現在還可以,但值得考慮時區方面。 Date沒有時區或日歷的任何概念-只是時間的瞬間。 SimpleDateFormat 確實具有關聯的時區和日歷(和區域性),因此請確保它們對於您的目的是正確的。

h上午/下午(1-12)

H小時(0-23)

k一天中的小時(1-24)

K小時,上午/下午(0-11)

使用HH

類SimpleDateFormat doc

您必須使用HH而不是hh

yyyy-MM-dd'T'HH:mm:ss

信函日期或時間組成部分演示示例

H時數(0-23)數字0

k一天中的小時(1-24)數字24

K小時,上午/下午(0-11)數字0

h小時在上午/下午(1-12)12號

您可以在此處閱讀有關Date更多信息。

包com.stackoverflow.experiments;

導入java.text.SimpleDateFormat; 導入java.util.Calendar;

公共類SimpleDateFormatExperiment {

/**
 * 
 */
public SimpleDateFormatExperiment() {
    // TODO Auto-generated constructor stub
}

/**
 * @param args
 */
public static void main(String[] args) {
    // TODO Auto-generated method stub

    System.out.println(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss").format(Calendar.getInstance().getTime()));
}

}

暫無
暫無

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

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