使用SimpleDateFormat将直接日期转换为字符串

Mwe*_*ene 0 java date dataformat

我知道这可能是一个愚蠢的问题,但我最难将Date转换为字符串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"

任何帮助,将不胜感激.

Jon*_*eet 8

你正在使用hh,这是12小时制.您想要使用HH:

"yyyy-MM-dd'T'HH:mm:ss"
Run Code Online (Sandbox Code Playgroud)

来自文档SimpleDateFormat

  • hh - 上午/下午(1-12)
  • HH - 一天中的小时(0-23)
  • kk - 一天中的小时(1-24)
  • KK - 上午/下午(0-11)

(很明显为什么他们在12/24小时内扭转了资本化kk/ KK超出我的范围,但是整个Java日期/时间API都疯了......)

此外,虽然看起来你现在还好,但值得考虑时区方面.A Date没有任何时区或日历的概念 - 它只是一个瞬间.它SimpleDateFormat 确实有一个相关的时区和日历(和文化),所以要确保它们对你的目的是正确的.