如何将yyyy-mm-ddThh:mm:ss格式的时间转换为Unix时间戳?
不同主流开发环境下的转换方案
你说的格式是标准ISO 8601时间格式,所有主流语言都有内置转换方案,不需要引入第三方依赖:
Python
- Python 3.7+ 直接用内置
datetime模块即可:
from datetime import datetime iso_time_str = "2024-05-20T12:34:56" dt = datetime.fromisoformat(iso_time_str) # 得到秒级Unix时间戳,转毫秒直接乘以1000即可 unix_timestamp = int(dt.timestamp())
低于3.7版本的Python替换解析方法即可:
dt = datetime.strptime(iso_time_str, "%Y-%m-%dT%H:%M:%S") unix_timestamp = int(dt.timestamp())
JavaScript(浏览器/Node.js)
- 直接用内置
Date对象处理:
const isoTimeStr = "2024-05-20T12:34:56"; // getTime()返回毫秒级时间戳,除以1000取整得秒级 const unixTimestampSec = Math.floor(new Date(isoTimeStr).getTime() / 1000);
Java 8+
- 用内置
java.time包处理:
import java.time.LocalDateTime; import java.time.ZoneOffset; public class TimeConvert { public static void main(String[] args) { String isoTimeStr = "2024-05-20T12:34:56"; LocalDateTime dateTime = LocalDateTime.parse(isoTimeStr); // 按UTC时区转换为秒级时间戳,需要其他时区可修改ZoneOffset参数 long unixTimestamp = dateTime.toEpochSecond(ZoneOffset.UTC); } }
Shell 命令行
# Linux 系统 date -d "2024-05-20T12:34:56" +%s # macOS 系统 date -j -f "%Y-%m-%dT%H:%M:%S" "2024-05-20T12:34:56" +%s
注意:如果API返回的时间是带指定时区的,不是UTC时间,需要对应调整时区参数,避免出现8小时之类的时间差错误。
内容的提问来源于stack exchange,提问作者DreamLogic
相关产品推荐
相关产品推荐

