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

如何检查选定时间是否已超过当前时间?

检查选定时间是否超过当前时间

要判断selectedTime是否已超过当前时间,直接利用Dart中DateTime类的比较能力即可,核心是统一时区后做时间对比,具体实现如下:

  • 注意时区统一:你的selectedTime是UTC时间(带Z后缀),而DateTime.now()默认返回本地时间,直接对比会因时区差出现错误,建议将当前时间转为UTC时间对齐时区。
  • 使用DateTime类的内置方法或比较运算符完成判断。

示例代码

// 选定的UTC时间
DateTime selectedTime = DateTime.parse('2023-12-29 13:08:04Z');
// 获取当前UTC时间,与选定时间时区统一
final currentTime = DateTime.now().toUtc();

// 判断选定时间是否已超过当前时间
bool isTimePassed = selectedTime.isBefore(currentTime);

// 输出结果:若当前UTC时间晚于选定时间,返回true,否则返回false
print(isTimePassed);

关键说明

  • isBefore()方法:用于判断调用该方法的DateTime对象是否早于传入的时间对象,这里selectedTime.isBefore(currentTime)就代表选定时间已经过去(超过当前时间)。
  • 也可以直接用比较运算符:bool isTimePassed = selectedTime < currentTime;,效果和isBefore()完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 11:28:15