昨天午夜是一个划时代的时间?
我试图让我对datetime模块有所了解。我知道现在是一个纪元,一个事件的最后发生时间(一个纪元)。我需要做的是弄清楚该事件是否在昨天的午夜和午夜之间发生。
t = time.time() # is now
t2 = 1234567890 # some arbitrary time from my log
24小时前的电话是-86400,但我如何将其四舍五入到午夜。我真的很难找到一种方法来获取和获取日期时间的时间戳,或者然后操纵日期时间来设置时间。
-
在半夜
生成最后一个午夜很容易:
from datetime import datetime, time midnight = datetime.combine(datetime.today(), time.min)
结合了今天的日期(您可以使用,也可以选择
date()
一个datetime()
实例),并在
午夜time.min
形成一个datetime
对象。
__昨天
使用a
timedelta()
可以计算 前一个 午夜:from datetime import timedelta yesterday_midnight = midnight - timedelta(days=1)
那是昨天
现在测试您的时间戳是否介于这两点之间:
timestamp = datetime.fromtimestamp(some_timestamp_from_your_log) if yesterday_midnight <= timestamp < midnight: # this happened between 00:00:00 and 23:59:59 yesterday
现在都在一起了
合并为一个功能:
from datetime import datetime, time, timedelta def is_yesterday(timestamp): midnight = datetime.combine(datetime.today(), time.min) yesterday_midnight = midnight - timedelta(days=1) return yesterday_midnight <= timestamp < midnight: if is_yesterday(datetime.fromtimestamp(some_timestamp_from_your_log)): # ...