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

Python实现类似Java的时间戳转ISO 8601格式代码求助

等价的Python时间戳转ISO格式实现

嘿,刚接触Python的话确实会碰到一些和Java语法不一样的地方,我来帮你把这段Java代码转换成功能匹配的Python实现~

首先先把你提供的Java代码贴出来方便对照:

private String getISOTimestamp(Long timeStamp) {
Date date = new Date(timeStamp);
String pattern = "yyyy-MM-dd'T'HH:mm:ss'Z'";
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
String isoTS = sdf.format(date);
return isoTS;
}

注意点说明

先提个小细节:你的Java代码里SimpleDateFormat没有指定时区,默认会用本地时区来格式化时间,但最后却硬加了代表UTC时区的'Z',这其实会造成时间表示的歧义(比如本地时间是上午10点,却标记成UTC的10点)。如果你的真实需求是转换为UTC时区的标准ISO格式,那下面的Python实现会更规范;如果只是要完全复刻Java代码的行为(本地时区+硬加Z),我也会给出对应的版本。

方案1:规范的UTC时区实现(推荐)

这个方案会把毫秒级时间戳转换成UTC时区的datetime对象,再格式化为你要的字符串:

def get_iso_timestamp(timestamp):
    from datetime import datetime
    # Java时间戳是毫秒级,Python的datetime接受秒级,所以除以1000
    utc_dt = datetime.utcfromtimestamp(timestamp / 1000)
    # 格式化为指定格式,Z代表UTC时区
    return utc_dt.strftime("%Y-%m-%dT%H:%M:%SZ")

方案2:更简洁的现代写法(Python 3.6+)

用isoformat()方法可以更轻松生成标准ISO格式,再去掉微秒并加上Z:

def get_iso_timestamp(timestamp):
    from datetime import datetime
    utc_dt = datetime.utcfromtimestamp(timestamp / 1000).replace(microsecond=0)
    return utc_dt.isoformat() + "Z"

方案3:完全复刻Java代码的行为(本地时区+硬加Z)

如果你确实需要和Java代码一样用本地时区格式化(即使加Z会有歧义),可以把utcfromtimestamp换成fromtimestamp:

def get_iso_timestamp(timestamp):
    from datetime import datetime
    local_dt = datetime.fromtimestamp(timestamp / 1000)
    return local_dt.strftime("%Y-%m-%dT%H:%M:%SZ")

测试示例

调用这个函数试试:

print(get_iso_timestamp(1696500000000))  # 输出类似:2023-10-05T14:40:00Z

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:24:06