如何将2021-10-10 13:06:26.666855格式时间转换为毫秒级时间戳
转换核心逻辑
毫秒级时间戳指的是UTC时区1970-01-01 00:00:00到目标时间的毫秒数,你给出的输入格式为%Y-%m-%d %H:%M:%S.%f(年-月-日 时:分:秒.6位微秒),转换时只需先按格式解析为时间对象,再换算为毫秒单位即可,注意需统一时区基准,避免时区偏移导致结果错误。
各场景实现方法
Python 实现
from datetime import datetime input_time_str = "2021-10-10 13:06:26.666855" # 按输入格式解析时间 dt_obj = datetime.strptime(input_time_str, "%Y-%m-%d %H:%M:%S.%f") # 换算为毫秒时间戳,转整数丢弃多余的微秒精度 ms_timestamp = int(dt_obj.timestamp() * 1000) print(ms_timestamp)
如果输入时间是UTC时区,可替换为dt_obj.replace(tzinfo=datetime.timezone.utc).timestamp()处理时区。
JavaScript 实现
const inputTime = "2021-10-10 13:06:26.666855"; // 转换为JS Date支持的ISO格式字符串 const formattedTime = inputTime.replace(" ", "T"); const dt = new Date(formattedTime); const msTimestamp = dt.getTime(); console.log(msTimestamp);
Java 实现
import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.time.ZoneId; public class TimeConverter { public static void main(String[] args) { String inputTime = "2021-10-10 13:06:26.666855"; DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSSSSS"); LocalDateTime dateTime = LocalDateTime.parse(inputTime, formatter); // 按本地时区换算,若为UTC时区替换为ZoneId.of("UTC") long msTimestamp = dateTime.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli(); System.out.println(msTimestamp); } }
Linux Shell 实现
直接用date命令转换:
input_time="2021-10-10 13:06:26.666855" # %s输出秒级时间戳,%3N取纳秒前3位即毫秒值,拼接后为13位毫秒戳 date -d "$input_time" +%s%3N
如果输入为UTC时间,添加-u参数即可:date -u -d "$input_time" +%s%3N
内容的提问来源于stack exchange,提问作者Kuldeep Yadav
相关产品推荐
相关产品推荐

