当前位置: 首页 > 面试题库 >

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

黄跃
2023-03-14
问题内容

我有一个字符串“ 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)

使用Joda时间,您可以这样做:

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。由于您String的java.time.LocalDateTime或LocalDate中没有时区,因此可以使用时区变体ZonedDateTime和ZonedDate。

// 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之前,您将使用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));


 类似资料:
  • 问题内容: 好吧,我正在使用a进行详细说明,因为我从数据库中获取了一个对象,并且从同一对象中获得了一个变量“ fecha”(日期),因此我得到了a ,因此formatt以毫秒为单位,但是我不想出现毫秒。因此,我需要将我从数据库中收到的日期格式化为没有毫秒的新日期。 这是对象Factura: 在映射到数据库的xml中,我具有该变量“ fecha”的代码: 在数据库中,该列为。 当我从数据库中获取一个

  • 问题内容: 我有一个格式。我希望它采用以下格式 以下是我尝试进行此转换的示例: 我得到的输出仍然不是格式。 请让我知道如何格式化从到 问题答案: 是自Unix纪元(1970年1月1日UTC:00:00)以来的毫秒数的容器。 它没有格式的概念。 输出…

  • 问题内容: 2012年12月1日星期六00:00:00 GMT 我必须将以上日期转换为以下格式 2012-12-01 我怎样才能? 我已经尝试使用以下方法,但无法正常工作 问题答案: 用这个。 您将获得输出为

  • 我有字符串,它是。 我想把这个字符串转换成格式为的字符串,或者在本例中是。

  • 问题内容: 我有一个名为的表,还有一个名为的列,ID的数据如下所示: IN_Date的数据类型为varchar(50)。 我正在尝试将IN_Date转换为mm / dd / yyyy格式。我尝试这样做: 但是格式仍然没有改变。谁能告诉我我要去哪里错了 问题答案: 您需要先进行转换才能将数据固定(正确的数据类型), 然后再 格式化…