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

如何将无标识UTC日期字符串转换为UTC Unix时间戳?

解决不带时区标识的日期字符串转UTC Unix时间戳问题

当你使用new Date(dateString)解析不带时区标识的"YYYY-MM-DD HH:mm:ss"格式字符串时,JavaScript会默认按本地时区处理,导致生成的时间戳和预期的UTC时间戳不符。以下两种方法可以解决这个问题:

方法1:给日期字符串添加UTC时区标识

将原字符串转换为ISO 8601格式并追加Z(代表UTC时区),让new Date()强制按UTC解析:

const dateString = "2022-07-23 17:12:22";
// 替换空格为T,末尾添加Z标识UTC时区
const utcDateString = dateString.replace(' ', 'T') + 'Z';
const targetTimestamp = Math.floor(new Date(utcDateString).getTime() / 1000);
// 结果:1658596342

方法2:用Date.UTC()手动构建UTC时间

拆分日期时间的各个字段,通过Date.UTC()直接生成UTC时间的毫秒数(注意月份参数是0-based,需减1):

const dateString = "2022-07-23 17:12:22";
const [datePart, timePart] = dateString.split(' ');
const [year, month, day] = datePart.split('-').map(Number);
const [hour, minute, second] = timePart.split(':').map(Number);

// Date.UTC参数:年, 月(0-11), 日, 时, 分, 秒
const utcTimestampMs = Date.UTC(year, month - 1, day, hour, minute, second);
const targetTimestamp = Math.floor(utcTimestampMs / 1000);
// 结果:1658596342

两种方法对比:

  • 方法1操作简单,适合可以修改输入字符串格式的场景;
  • 方法2无需修改原字符串,解析逻辑更可控,适合复杂的日期格式处理场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 18:18:30