You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java 8中如何将LocalDateTime对象格式化为指定的字符串格式

实现方案

Java 8 可直接使用java.time.format.DateTimeFormatter指定格式模板完成LocalDateTime的格式化,注意指定英文Locale避免非英文环境下输出不符合要求的内容。

完整可运行代码如下:

import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.Locale;

public class DateFormatDemo {
    public static void main(String[] args) {
        String dateUTC = "2021-10-21T10:32:38Z";
        Instant i =  Instant.parse(dateUTC);
        LocalDateTime ldt = i.atZone(ZoneId.of("Europe/London")).toLocalDateTime();

        // 格式化核心代码
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern(" MMM dd yyyy hh:mm:ss a", Locale.US);
        String output = ldt.format(formatter);

        System.out.println(output);
        // 输出结果: Oct 21 2021 11:32:38 AM
    }
}

格式模板各部分含义说明:

  • MMM:对应英文短写月份,10月会输出为Oct
  • dd:两位日期,不足两位自动补前导0
  • yyyy:4位公历年份
  • hh:12小时制的小时数,取值范围01~12
  • mm/ss:分别对应分钟、秒,均为两位格式
  • a:对应12小时制的上下午标识,输出为AM/PM
  • 模板开头的空格匹配你需求中输出开头的空格,不需要可直接删除模板最前方的空格
  • 指定Locale.US是为了强制输出英文的月份和上下午标识,省略该参数的话中文环境下会输出十月、上午等中文内容,不符合要求

内容的提问来源于stack exchange,提问作者Starbucks Admin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 09:54:06