我知道这可能是一个愚蠢的问题,但我使用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'。 –