0

如何使用日期类获取格式为“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

4 回答 4

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));
于 2013-07-15T08:45:28.880 回答
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);

或者你想去掉日期对象的时间?或者其他的东西。

于 2013-07-15T08:45:43.093 回答
1

你被Date.toString()和弄糊涂了SimpleDateFormat.format()

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

但是,SimpleDateFormat.format()会给您一个字符串作为返回值,该值将使用由SimpleDateFormat.

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

于 2013-07-15T08:50:44.680 回答
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 对象类型中获得此格式。

于 2017-12-29T09:18:53.023 回答