我知道这可能是一个愚蠢的问题,但我最难使用SimpleDateFormat
将日期转换为字符串。我有一个当地日期
“Thu Jul 18 18:56:51 PDT 2013”
我正在尝试直接以格式
转换它“YYYY-MM-dd'T'hh:MM:SS”。
我希望字符串看起来像这样:
“2013-07-18T18:56:51”
我得到的是:
“2013-07-18T06:56:51”
任何帮助都将不胜感激。
答案 0 :(得分:8)
你正在使用hh
,即12小时制。您想要使用HH
代替:
"yyyy-MM-dd'T'HH:mm:ss"
- hh - 上午/下午(1-12)小时
- HH - 白天(0-23)
- kk - 一天中的小时(1-24)
- KK - 上午/下午(0-11)小时
(他们以kk
/ KK
的12/24小时来扭转资本化的原因超出了我的范围,但是整个Java日期/时间API都疯了......)
此外,虽然看起来你现在还可以,但值得考虑时区方面。 Date
没有任何时区或日历的概念 - 它只是一个瞬间。 SimpleDateFormat
具有关联的时区和日历(和文化),因此请确保它们符合您的目的。
答案 1 :(得分:0)
答案 2 :(得分:0)
您必须使用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
here。
答案 3 :(得分:0)
package com.stackoverflow.experiments;
import java.text.SimpleDateFormat; import java.util.Calendar;
public class 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()));
}
}