如何使用SimpleDateFormat格式化我的约会?

时间:2013-04-01 09:07:30

标签: java date simpledateformat

我正在尝试设置日期格式,但是当我运行此代码时

String oldstring = "2013-01-1";
System.out.println("oldstring = "+oldstring);
Date date = new SimpleDateFormat("yyyy-mm-dd").parse(oldstring);
System.out.println("datefield = "+date);

我拿结果:

oldstring = 2013-01-1
datefield = Tue Jan 01 00:01:00 MSK 2013

为什么datefield不等于2013-01-1?

3 个答案:

答案 0 :(得分:4)

mm中的yyyy-mm-dd表示分钟而非月份。设置月使用MM

看起来像这样:

Date date = new SimpleDateFormat("yyyy-MM-dd").parse(oldstring);

<强>更新 试试这个:

String oldstring = "2013-01-1";
System.out.println("oldstring = "+oldstring);
Date date = new SimpleDateFormat("yyyy-mm-dd").parse(oldstring);
String sdf = new SimpleDateFormat("yyyy-mm-dd").format(date);
System.out.println("datefield = "+sdf);

如果您不使用new SimpleDateFormat("yyyy-mm-dd").format(date); 您获得包含所有信息的标准日期格式。如果您需要特殊格式,则需要使用
new SimpleDateFormat("yyyy-mm-dd").format(date);

Also read this article about date formatting

答案 1 :(得分:3)

日期字段的类型是Date,因此toString方法基本上总是返回相同的格式,因为您没有覆盖它。

所以你需要做的,基本上是:

String oldstring = "2013-01-1";
System.out.println("oldstring = "+oldstring);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf.parse(oldstring);
System.out.println("datefield = "+date);
String outDateStr = sdf.format(date);
System.out.println("newstring = "+outDateStr);

答案 2 :(得分:2)

每月使用MM。 mm是分钟