我有以下情况:
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
System.out.println(dateFormat.parse("31/05/2011"));
给出输出
Tue May 31 00:00:00 SGT 2011
但我希望输出为
31/05/2011
我需要在这里使用parse,因为日期需要按日期排序,而不是字符串。
任何想法??
答案 0 :(得分:70)
怎么样:
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
System.out.println(dateFormat.format(dateFormat.parse("31/05/2011")));
> 31/05/2011
答案 1 :(得分:52)
您需要浏览SimpleDateFormat.format
才能将日期格式化为字符串。
以下是来自String
- >的示例Date
- > String
。
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
Date date = dateFormat.parse("31/05/2011");
System.out.println(dateFormat.format(date)); // prints 31/05/2011
// ^^^^^^
答案 2 :(得分:15)
使用SimpleDateFormat.format
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
Date date = new Date();
String sDate= sdf.format(date);
答案 3 :(得分:6)
您可以使用以下代码在Java中使用简单的日期格式
SimpleDateFormat simpledatafo = new SimpleDateFormat("dd/MM/yyyy");
Date newDate = new Date();
String expectedDate= simpledatafo.format(newDate);
答案 4 :(得分:4)
没有意义,但是:
System.out.println(dateFormat.format(dateFormat.parse("31/05/2011")))
SimpleDateFormat.parse() = // parse Date from String
SimpleDateFormat.format() = // format Date into String
答案 5 :(得分:3)
如果您只想输出日期,只需使用以下内容:
System.out.printf("Date: %1$te/%1$tm/%1$tY at %1$tH:%1$tM:%1$tS%n", new Date());
见here。或者,如果要将值转换为String(例如,对于SQL构建),可以使用:
String formattedDate = String.format("%1$te/%1$tm/%1$tY", new Date());
自定义输出
答案 6 :(得分:1)
您已经拥有此功能(这是您输入的内容)parse
会将日期解析为给定格式并打印完整日期对象(toString
)。
答案 7 :(得分:1)
这是现代的答案。
DateTimeFormatter sourceFormatter = DateTimeFormatter.ofPattern("dd/MM/uuuu");
DateTimeFormatter displayFormatter = DateTimeFormatter
.ofLocalizedDate(FormatStyle.SHORT)
.withLocale(Locale.forLanguageTag("zh-SG"));
String dateString = "31/05/2011";
LocalDate date = LocalDate.parse(dateString, sourceFormatter);
System.out.println(date.format(displayFormatter));
此代码段的输出为:
11/05/31
查看您是否可以接受两位数的年份。或使用FormatStyle.MEDIUM
获得2011年5月31日
。我建议您尽可能使用Java内置的日期和时间格式。它更容易实现国际化。
如果您需要给定的确切格式,也可以将源格式器也用作显示格式器:
System.out.println(date.format(sourceFormatter));
31/05/2011
我建议您不要使用SimpleDateFormat
。众所周知,这很麻烦,而且已经过时了。取而代之的是,我使用现代的Java日期和时间API java.time。
要获取特定格式,您需要将解析后的日期重新格式化为字符串。不管是老式的Date
还是现代的LocalDate
都可以使用其中的格式。
链接: Oracle tutorial: Date Time解释了如何使用java.time。
答案 8 :(得分:0)
这会对你有所帮助。 DateFormat df = new SimpleDateFormat(“dd / MM / yyyy”); print(df.format(new Date());
答案 9 :(得分:0)
我有这样的东西,我的建议是使用java这样的东西,不要输入样板代码