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

如何获取今日00:00时刻对应的millisecondsSinceEpoch时间戳

获取当日零点对应的毫秒时间戳实现方案

你需要的是从当前时间中提取日期部分,构造对应日期00:00:00的时间对象后再转时间戳,以下是不同场景的实现:

Dart/Flutter 场景(你示例中DateTime.now()的使用场景)

推荐写法

DateTime now = DateTime.now();
// 构造本地时区当日00:00:00的时间对象
DateTime localMidnight = DateTime(now.year, now.month, now.day);
// 转毫秒时间戳
int localMidnightTs = localMidnight.millisecondsSinceEpoch;

// 如果需要UTC时区的当日零点,改用以下写法
DateTime utcMidnight = DateTime.utc(now.year, now.month, now.day);
int utcMidnightTs = utcMidnight.millisecondsSinceEpoch;

避坑提示

  • 不要用now.subtract()手动减去当前时分秒的方式计算零点,容易漏处理毫秒、微秒字段导致结果偏差,且代码冗余
  • 注意区分本地时区和UTC时区的零点,二者对应的时间戳不同,需根据业务场景选择

示例验证:假设当前DateTime.now()返回结果为2021-09-20 20:18:04,上述方法构造出的localMidnight就是2021-09-20 00:00:00,转换得到的时间戳完全符合需求。

JavaScript 场景

const now = new Date()
// 构造本地时区当日零点
const localMidnight = new Date(now.getFullYear(), now.getMonth(), now.getDate())
const localMidnightTs = localMidnight.getTime()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 10:06:02