将当前时间与纪元日期整数

时间:2015-11-29 00:39:04

标签: sql date db2 epoch

大纪元日期整数包括转换为“人类日期”的年,月,日,小时,分钟和秒,但如何将纪元时间与当天的特定时间进行比较(例如:13:45)

换句话说,如果我从一个程序中得到一个整数的纪元日期,并且我想编写一个程序来检查该纪元时间是否在同一天的13:45之后,那么逻辑是什么这个?

我在dabatase字段中有纪元日期,在另一个字段中有特定时间(13:45),每次检查当前日期时我需要检查是否是13:45或更晚。我正在使用DB2,但它并不重要;因为我想理解比较时间与整个纪元日期的逻辑(如果可能的话,在数学上),看它是否匹配。

谢谢

1 个答案:

答案 0 :(得分:1)

假设"纪元日期"你的意思是unix timestamp(基于UTC),然后逻辑上:

  1. 将整数unix时间戳解释为UTC的日期和时间。
  2. 从UTC转换为适用的时区。
  3. 从第2步中取出日期并将其与当前时间配对。
  4. 确保所选时区中新的日期和时间有效,并消除歧义是否有多个解释。这对于夏令时转换附近的值非常重要。有关详细信息,请参阅the DST tag wiki
  5. 转换步骤3中的本地日期和时间,以及步骤4中确定的任何调整,并将其转换为基于UTC的日期和时间。
  6. 将步骤5中的值与步骤1中的值进行比较。(或者,从此值获取新的unix时间戳,并将其与原始的unix时间戳进行比较。)
  7. 请注意,如果不了解适用的时区,则无法完成此任务。理想情况下,时区应该是标准的IANA / Olson时区标识符,例如America/Los_AngelesEurope/Paris,并且您需要支持与您的应用程序或数据库中的那些人一起工作。请参阅the timezone tag wiki

    另请注意,我们不比较当地时间,而是比较UTC时间。原因是因为本地时间可能不明确,如果你选择第一次出现而不是第二次出现,结果会有所不同,反之亦然。