python获取当天0点的时间戳

有时候,我们需要获取当天零点的时间戳,先给出代码吧。

>>> import time
>>> now_time = int(time.time())
>>> day_time = now_time - now_time % 86400 + time.timezone
>>> day_time_str = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(day_time))
>>> print(day_time_str)
2018-12-27 00:00:00

其中主要代码就是这一句: 

      day_time = now_time - now_time % 86400 + time.timezone

解释一下,now_time = int(time.time()) 就是当前时间戳,即就是从格林威治1970年01月01日00时00分00秒起至现在的总秒数,86400 = 24 * 60 * 60,表示一天时间对应的秒数,now_time - now_time % 86400 得到的就是格林威治时间当天零时的时间戳,因为我们北京时间是东8区,会比格林威治时间快上8小时,所以这个时间戳对应的就是北京时间早上8点,打印下就能看到。

>>> print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(now_time - now_time % 86400)))
2018-12-27 08:00:00

要得到北京时间当天零时,需要再加上一个时区参数 time.timezone,我们直接打印下这个参数吧

>>> print(time.timezone)
-28800

28800 就等于 8 * 60 * 60,现在明白了吧,这个参数就是为了减去上面你看到的8小时,得到我们北京时间当天零时。

还有,如果你要得到昨天零时的时间戳,直接用 day_time 减去 86400 就可以,很简单吧。

猜你喜欢

转载自www.cnblogs.com/lucky-heng/p/10187790.html