从日期对象中获取错误的日期

Waq*_*Ali -1 java date simpledateformat

我有这个代码

import java.text.SimpleDateFormat;
import java.util.Date;

public class TestClass {

  public static void main(String args[]) {
    SimpleDateFormat f = new SimpleDateFormat("YYYY-MM-DD HH:MM:SS");
    Date d = new Date();
    System.out.println(f.format(d));        
  }
}
Run Code Online (Sandbox Code Playgroud)

我预计输出应该是

OutPut: 2013-07-05 19:07:983 (current date time)
Run Code Online (Sandbox Code Playgroud)

但我得到的输出如下

Output: 2013-07-186 19:07:983
Run Code Online (Sandbox Code Playgroud)

我的代码有什么问题?当我打印这一行时,d.toString()我得到了正确的日期.

Jon*_*eet 7

您的格式在各方面都是错误的.你要yyyy-MM-dd HH:mm:ss

  • yyyy- 日历年(不是工作年YYYY)
  • MM - 一年中的一个月
  • dd- 月中的某一天(不是一年中的某一天DD)
  • HH - 一天中的小时(24小时制)
  • mm- 分钟(不是月份MM)
  • ss- 秒(不是毫秒SS)

有关SimpleDateFormat更多详细信息,请参阅Javadoc .

此外,默认情况下SimpleDateFormat将使用系统默认时区 - 您应该考虑这是否实际上是您想要的时区.即使你明确希望的是,它可能是更清晰明确设置它.同上这个地方.