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
相关产品推荐
相关产品推荐

