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

如何在Java中按November 28, 2022格式输出日期及带AM/PM的时间

Java日期格式化:输出指定格式的带AM/PM标识的时间

你的问题出在SimpleDateFormat的格式模式字符串上,原模式"dd-MM-yyyy hh:mm:ss a"对应「日-月-年 时:分:秒 AM/PM」的输出,和你需要的「November 28, 2022 11:45:43 AM」格式不匹配,调整格式模式即可解决。

修正方案(旧API)

使用正确的格式模式"MMMM dd, yyyy hh:mm:ss a",各部分含义:

  • MMMM:月份全称(如November)
  • dd:两位数字日期(28)
  • yyyy:四位数字年份(2022)
  • hh:12小时制小时数
  • mm:分钟
  • ss:秒
  • a:AM/PM标识

同时建议指定Locale.US,避免不同地区环境下月份显示为非英文:

import java.util.Date;
import java.text.SimpleDateFormat;
import java.util.Locale;

public class DateFormatter {
    public static void main(String[] args) {
        Date date = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("MMMM dd, yyyy hh:mm:ss a", Locale.US);
        String formattedDate = sdf.format(date);
        System.out.println(formattedDate);
    }
}

推荐方案(Java 8+新API)

SimpleDateFormat存在线程不安全问题,Java 8及以上推荐使用java.time包下的新日期时间API,更稳定可靠:

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

public class ModernDateFormatter {
    public static void main(String[] args) {
        LocalDateTime now = LocalDateTime.now();
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MMMM dd, yyyy hh:mm:ss a", Locale.US);
        String formattedDate = now.format(formatter);
        System.out.println(formattedDate);
    }
}

内容的提问来源于stack exchange,提问作者Priyanka Rani

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 02:30:44