【问题标题】:How to convert a LocalDateTime date to a particular format?如何将 LocalDateTime 日期转换为特定格式?
【发布时间】:2021-12-09 00:44:57
【问题描述】:

您好,我正在编写小型 Java 代码 sn-p。我正在使用 Java 8。我有一个 Java LocalDateTime 对象,我想格式化它。请在下面查看我的代码。

String dateUTC = "2021-10-21T10:32:38Z";
Instant i =  Instant.parse(dateUTC);
LocalDateTime ldt = i.atZone(ZoneId.of("Europe/London")).toLocalDateTime();

我想将LocalDateTime 对象ldt 打印为以下格式的字符串:

 Oct 21 2021 11:32:38 AM

我怎样才能做到这一点?

【问题讨论】:

    标签: java datetime datetime-format java-time


    【解决方案1】:
    DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("dd MMM yyyy HH:mm:ss a");  
    System.out.println(  ldt.format(dateTimeFormatter));
    

    【讨论】:

      【解决方案2】:

      使用内置的本地化格式

      你可以在输出中使用逗号吗?

          DateTimeFormatter dateTimeFormatter
                  = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM)
                          .withLocale(Locale.US);  
          System.out.println(ldt.format(dateTimeFormatter));
      

      输出:

      2021 年 10 月 21 日上午 11:32:38

      直接的好处是我们不需要摆弄任何格式模式字符串,这总是一个容易出错的任务。另外两个优点是: 1. 用户可能会对内置格式更满意,因为它的构建符合当地人的期望(例如美国); 2. 代码很适合本地化:只需指定不同的语言环境,让不同文化的人开心。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-07-17
        • 1970-01-01
        • 1970-01-01
        • 2023-01-29
        • 1970-01-01
        • 2021-06-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多