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

如何将指定JSON日期字段转换为MM-dd-yyyy HH:mm:ss格式?

没问题,我来帮你搞定这两个日期格式的转换!针对你给出的两种不同日期字符串,我分别用Java和Python两种常用编程语言来演示如何转换成MM-dd-yyyy HH:mm:ss格式,你可以根据自己的技术栈选择对应的方案。


Java 实现方案

Java 8及以上推荐使用新的日期时间API(java.time包),比旧的SimpleDateFormat更安全、更易用。

处理格式:May 22 12:05:41 UTC 2018

这个格式包含英文月份缩写和UTC时区,我们需要用对应的格式符解析,再转成目标格式:

import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;

public class DateConverter {
    public static void main(String[] args) {
        String inputDate = "May 22 12:05:41 UTC 2018";
        // 定义解析格式:MMM对应英文月份缩写,zzz对应时区
        DateTimeFormatter parser = DateTimeFormatter.ofPattern("MMM dd HH:mm:ss zzz yyyy");
        ZonedDateTime zonedDt = ZonedDateTime.parse(inputDate, parser);
        
        // 定义目标输出格式
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM-dd-yyyy HH:mm:ss");
        String outputDate = zonedDt.format(formatter);
        
        System.out.println(outputDate); // 输出:05-22-2018 12:05:41
    }
}

处理格式:2018-05-22 12:05:41.512

这个格式带毫秒数,解析时需要包含毫秒的格式符,格式化时去掉即可:

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

public class DateConverter {
    public static void main(String[] args) {
        String inputDate = "2018-05-22 12:05:41.512";
        // 解析格式包含毫秒(SSS)
        DateTimeFormatter parser = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS");
        LocalDateTime localDt = LocalDateTime.parse(inputDate, parser);
        
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM-dd-yyyy HH:mm:ss");
        String outputDate = localDt.format(formatter);
        
        System.out.println(outputDate); // 输出:05-22-2018 12:05:41
    }
}

Python 实现方案

Python用内置的datetime模块就能轻松处理,复杂场景也可以借助dateutil库简化操作。

处理格式:May 22 12:05:41 UTC 2018

使用strptime解析时,%b对应英文月份缩写,%Z对应时区:

from datetime import datetime

input_date = "May 22 12:05:41 UTC 2018"
# 解析输入格式
dt = datetime.strptime(input_date, "%b %d %H:%M:%S %Z %Y")
# 格式化输出目标格式
output_date = dt.strftime("%m-%d-%Y %H:%M:%S")

print(output_date)  # 输出:05-22-2018 12:05:41

如果遇到时区解析报错(部分环境对%Z支持有限),可以用dateutil.parser来自动识别格式:

from dateutil import parser

input_date = "May 22 12:05:41 UTC 2018"
dt = parser.parse(input_date)
output_date = dt.strftime("%m-%d-%Y %H:%M:%S")

print(output_date)  # 输出:05-22-2018 12:05:41

处理格式:2018-05-22 12:05:41.512

解析时用%f匹配毫秒数,格式化时自动忽略:

from datetime import datetime

input_date = "2018-05-22 12:05:41.512"
# 解析包含毫秒的格式
dt = datetime.strptime(input_date, "%Y-%m-%d %H:%M:%S.%f")
# 转成目标格式
output_date = dt.strftime("%m-%d-%Y %H:%M:%S")

print(output_date)  # 输出:05-22-2018 12:05:41

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:59:37