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

JavaScript如何将YYYY-MM-DD-HH-MM-SS格式字符串转为Epoch时间戳?

当然有办法解决这个问题!针对你给出的2018-05-29-13-56-00这种格式的日期字符串,我整理了几种常用场景下的实现方案,你可以按需选用:

Python 实现

Python的datetime模块可以轻松处理这类日期解析和转换:

from datetime import datetime

# 你的日期字符串
date_str = "2018-05-29-13-56-00"
# 定义匹配的日期格式:年-月-日-时-分-秒
date_format = "%Y-%m-%d-%H-%M-%S"

# 解析字符串为datetime对象
dt_obj = datetime.strptime(date_str, date_format)
# 转换为Epoch时间戳(秒级,带微秒精度)
epoch_ts = dt_obj.timestamp()

# 如果需要整数秒的戳,可以转成int
integer_epoch_ts = int(epoch_ts)

print(integer_epoch_ts)  # 输出:1527587760

JavaScript 实现

在JS里可以通过拆分字符串构造Date对象,再获取时间戳:

const dateStr = "2018-05-29-13-56-00";
// 拆分出年、月、日、时、分、秒各部分
const [year, month, day, hour, minute, second] = dateStr.split("-");

// 注意:JavaScript的月份是从0开始计数的,所以要减1
const dateObj = new Date(year, month - 1, day, hour, minute, second);
// 获取毫秒级Epoch时间戳
const epochMs = dateObj.getTime();
// 转成秒级戳(取整)
const epochSec = Math.floor(epochMs / 1000);

console.log(epochSec);  // 输出:1527587760

Bash 命令行实现

如果是在Linux/macOS终端下操作,用date命令就能快速转换:

date_str="2018-05-29-13-56-00"
# 把字符串中的"-"替换成空格,让date命令能识别格式
epoch_ts=$(date -d "${date_str//-/ }" +%s)

echo $epoch_ts  # 输出:1527587760

小提示:Epoch时间戳常见的有秒级和毫秒级两种,上面的示例默认输出秒级,如果你需要毫秒级,Python可以用dt_obj.timestamp() * 1000,JS直接用dateObj.getTime()即可。

内容的提问来源于stack exchange,提问作者C. Ubkcah

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:55:06