小编典典

如何将 Joda-Time DateTime 格式化为仅 mm/dd/yyyy?

all

我有一个字符串“ 11/15/2013 08:00:00”,我想将其格式化为“
11/15/2013”,正确的DateTimeFormatter模式是什么?

我尝试了很多并用谷歌搜索,但仍然无法找到正确的模式。

编辑:我正在寻找Joda-Time
DateTimeFormatter,而不是 Java 的
SimpleDateFormat ..


阅读 84

收藏
2022-06-29

共1个答案

小编典典

请注意,在 JAVA SE 8 中引入了一个新的 java.time (JSR-310) 包。 这取代了 Joda 时间,建议 Joda 用户迁移。关于
JAVA SE ≥ 8 的日期时间格式化方式,见下文。

乔达时间

创建一个DateTimeFormatter使用DateTimeFormat.forPattern(String)

使用 Joda time 你会这样做:

String dateTime = "11/15/2013 08:00:00";
// Format for input
DateTimeFormatter dtf = DateTimeFormat.forPattern("MM/dd/yyyy HH:mm:ss");
// Parsing the date
DateTime jodatime = dtf.parseDateTime(dateTime);
// Format for output
DateTimeFormatter dtfOut = DateTimeFormat.forPattern("MM/dd/yyyy");
// Printing the date
System.out.println(dtfOut.print(jodatime));

标准Java≥8

Java 8
引入了一个新的日期和时间库,使处理日期和时间变得更加容易。如果您想使用标准 Java 版本 8
或更高版本,您将使用DateTimeFormatter。由于您的Stringjava.time.LocalDateTimeLocalDate中没有时区,因此可以使用时区变量ZonedDateTimeZonedDate

// Format for input
DateTimeFormatter inputFormat = DateTimeFormatter.ofPattern("MM/dd/yyyy HH:mm:ss");
// Parsing the date
LocalDate date = LocalDate.parse(dateTime, inputFormat);
// Format for output
DateTimeFormatter outputFormat = DateTimeFormatter.ofPattern("MM/dd/yyyy");
// Printing the date
System.out.println(date.format(outputFormat));

标准 Java < 8

在 Java 8
之前,您将使用SimpleDateFormatjava.util.Date

String dateTime = "11/15/2013 08:00:00";
// Format for input
SimpleDateFormat dateParser = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
// Parsing the date
Date date7 = dateParser.parse(dateTime);
// Format for output
SimpleDateFormat dateFormatter = new SimpleDateFormat("MM/dd/yyyy");
// Printing the date
System.out.println(dateFormatter.format(date7));
2022-06-29