如何使用类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”。
答案 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对象类型中获得此格式。