【问题标题】:how to handle date comparison in Java during daylight saving?java - 如何在夏令时处理Java中的日期比较?
【发布时间】:2022-01-14 05:43:52
【问题描述】:

夏季不要在早上 5:30 运行代码,冬季不要在 6:30 运行代码。

在Java代码中,应用如下

scheduler (30 mins)
if(time.equals(5:30))
///exit code

但是现在冬天来了,我们不必在早上 6:30 运行它

如何处理夏令时区域的这种用例?

【问题讨论】:

  • 你是说你想在夏天做这份工作,而不是在冬天?还是全年在完全相同的实时/真实时间(不考虑冬/夏时间)运行它?
  • 假设您的时区通常有 1 小时的夏令时偏移,夏令时 5:30 对应于标准时间 4:30。您确定要 6:30 标准时间吗?现在是哪个时区?
  • 您的问题与当前编写的一样难以理解,如 cmets 和尝试回答所示。 “不运行代码”是什么意思? (30 mins) 是什么意思?由于不清楚,我投票结束。

标签: java date datetime


【解决方案1】:

我不确定您在这里使用的实际库是什么,所以我无法提供代码示例,但基本上您可以使用LocalDate 或类似的东西并在您的时区配置它。这将知道夏令时。

【讨论】:

    【解决方案2】:

    您可以使用TimeZoneinDaylightTime() 方法来确定是否应用夏令时,例如

    if(TimeZone.getTimeZone("US/Alaska").inDaylightTime(new Date())){
    
       // when daylight is true
    
    }
    else{
       // Code when daylight saving is false
    
    }
    
    
    

    机器默认时区,可以点赞

    TimeZone.getDefault().inDaylightTime(new Date())
    

    【讨论】:

    猜你喜欢
    • 2017-11-04
    • 2012-12-21
    • 2012-06-01
    • 2019-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-29
    相关资源
    最近更新 更多