如何使用课程日期以“YYYY-MM-DD 00:00:00.0”格式获取数据?

时间:2013-07-15 08:37:28

标签: java date

如何使用类Date获取格式为“YYYY-MM-DD 00:00:00.0”的数据(使用这个类非常重要)?

我试着做我能想到的一切:

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
df.format(date)

String pattern = "yyyy-MM-dd HH:mm:ss.S";
SimpleDateFormat format = new SimpleDateFormat(pattern);
try {
Date date = format.parse("2011-01-18 00:00:00.0");
} catch (ParseException e) {
e.printStackTrace();
}

当我使用记录器打印日期时,我得到这种格式“Tue Sep 30 00:00:00 MSK 1913”。

4 个答案:

答案 0 :(得分:5)

试试这个

    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S");
    Date date = format.parse("2011-01-18 00:00:00.0");
    System.out.println(format.format(date));

答案 1 :(得分:1)

你确定你希望小时,分钟,秒为零吗?

或者你的意思是模式yyyy-MM-dd HH:mm:ss?

日期类始终与格式无关。它只需要在打印时进行翻译,如下所示:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String out = df.format(date)
System.out.println(out);

或者您想从日期对象中删除时间?什么的。

答案 2 :(得分:1)

您对Date.toString()SimpleDateFormat.format()

感到困惑

Date (java.util.Date)的对象具有格式信息。如果你打电话给date.toString()(由你的记录器调用),你得到了这个对象的默认表示,你已经看到它是什么。

但是,SimpleDateFormat.format()会给你一个字符串作为返回值,这个值将使用SimpleDateFormat定义的模式格式化Date对象。

在您的代码中,您首先使用特定模式解析字符串以获取日期对象。如果成功,则获得Date对象,此处为此日期对象,即使您已定义模式来解析输入字符串,也没有任何格式信息。如果要打印/输出(再次输入字符串)日期对象,则必须使用SimpleDateFormat.format()方法。

答案 3 :(得分:0)

我希望当您需要为动态日期做时,下面的内容将解决您的问题。

Date today = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd 00:00:00");
String formattedDate = sdf.format(today);
System.out.println(formattedDate);
//Above line output (formatted String object) is 2017-12-29 00:00:00
System.out.println(format.format(formattedDate));
//Above line output(parsed Date object) is Fri Dec 29 00:00:00 IST 2017

对于Date对象,您无法将输出作为 yyyy-MM-dd 00:00:00 获得,但您将在String对象类型中获得此格式。