我有一个字符串“ 11/15/2013 08:00:00”,我想将其格式化为“ 11/15/2013”,正确的DateTimeFormatter模式是什么?
11/15/2013 08:00:00
11/15/2013
DateTimeFormatter
我尝试了很多并用谷歌搜索,但仍然无法找到正确的模式。
编辑:我正在寻找Joda-Time DateTimeFormatter,而不是 Java 的 SimpleDateFormat ..
请注意,在 JAVA SE 8 中引入了一个新的 java.time (JSR-310) 包。 这取代了 Joda 时间,建议 Joda 用户迁移。关于 JAVA SE ≥ 8 的日期时间格式化方式,见下文。
创建一个DateTimeFormatter使用DateTimeFormat.forPattern(String)
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 或更高版本,您将使用DateTimeFormatter。由于您的String、java.time.LocalDateTime或LocalDate中没有时区,因此可以使用时区变量ZonedDateTime和ZonedDate 。
String
// 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 之前,您将使用SimpleDateFormat和java.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));