检查时间戳字符串是否在时间范围内

3 投票
1 回答
4375 浏览
提问于 2025-04-17 15:55

我需要检查一个时间戳字符串是否在某个时间范围内:

tt = '26-12-2012 18:32:51'
t1 = datetime.timedelta(0, 28800) #08:00 hrs
t2 = datetime.timedelta(0, 68400) #19:00 hrs

为了进行比较,我需要把时间戳转换成时间差吗?我该怎么做,才能像这样进行比较:

if tt >= t1 and tt <= t2:

谢谢..

1 个回答

6

首先,使用 datetime.strptime 来创建一个日期时间对象:

>>> t = datetime.datetime.strptime('26-12-2012 18:32:51', '%d-%m-%Y %H:%M:%S')
>>> t
datetime.datetime(2012, 12, 26, 18, 32, 51)

接下来,创建一个只表示日期部分的第二个日期时间对象:

>>> t2 = t.replace(hour=0, minute=0, second=0)

从这个对象中,你可以得到一个 datetime.timedelta,这个可以用来和其他的 timedelta 进行比较:

>>> t - t2
datetime.timedelta(0, 66771)
>>> dt = t - t2
>>> dt1 = datetime.timedelta(0, 28800) #08:00 hrs
>>> dt2 = datetime.timedelta(0, 68400) #08:00 hrs
>>> dt > dt1
True
>>> dt2 > dt > dt1
True

撰写回答