我知道這可能是一個愚蠢的問題,但我使用SimpleDateFormat
將日期轉換爲字符串最困難。我有一個本地日期使用SimpleDateFormat將直接日期轉換爲字符串
「週四7月18日18時56分51秒PDT 2013」
,我試圖把它直接在格式
「YYYY-MM轉換-dd'T'hh:MM:SS」。
我希望字符串是什麼樣子是這樣的:
「2013-07-18T18:56:51」
什麼我得到的是:
「2013-07-18T06:56:51」
任何幫助,將不勝感激。
我知道這可能是一個愚蠢的問題,但我使用SimpleDateFormat
將日期轉換爲字符串最困難。我有一個本地日期使用SimpleDateFormat將直接日期轉換爲字符串
「週四7月18日18時56分51秒PDT 2013」
,我試圖把它直接在格式
「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"
- HH - 在凌晨小時/時(1-12)
- HH - 一天中的小時(0-23)
- KK - 一天中的小時(1-24)
- KK - 小時的AM/PM(0-11)
(相當爲什麼他們扭轉了資本在12/24小時條款kk
/KK
超越我,但後來整個Java的日期/時間API是瘋了...)
而且,雖然看起來你現在還好,但值得考慮時區方面。 A Date
沒有任何時區或日曆的概念 - 這只是時間。 SimpleDateFormat
確實有一個相關的時區和日曆(和文化),所以要確保它們是正確的爲您的目的。
欲瞭解更多信息,請查看[日期和時間模式](http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html) –
是的 - 我正式推遲...謝謝! – MweyaMutsvene
@RubensMariuzzo:是的,它只是鏈接到那個 - 或者說JDK 7的版本。你有沒有注意到kk/KK的奇怪之處? (我現在在答案中指出。) –
您必須使用HH
而不是hh
:
yyyy-MM-dd'T'HH:mm:ss
字母日期或時間組件演示例子
h小時在(0-23)數0
ķ每小時(1-24)24號
K小時am/pm(0-11)N在AM/PM(1-12)12號
赭0
h小時你可以閱讀更多關於Date
here。
package com.stackoverflow.experiments;
import java.text.SimpleDateFormat; import 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()));
}
}
代替'hh'的使用'HH'。 'h'是上午/下午的小時,'H'是一天中的小時。 –
@RameshK:不,那仍然是'hh'而不是'HH'。 –