一日一技:如何生成今天0点的时间戳

简介: 一日一技:如何生成今天0点的时间戳

我们知道,要获取现在的时间可以使用Python自带的 datetime来实现:

import datetime
now = datetime.datetime.now()

如果要获得现在这一秒钟的时间戳,可以继续加一行:

import datetime
now = datetime.datetime.now()
ts = now.timestamp()

那么问题来了,如何生成今天0点的时间戳?

可能有人会这样写:

import datetime
now = datetime.datetime.now()
hour = now.hour
minute = now.minute
second = now.second
microsecond = now.microsecond
midnight = now - datetime.timedelta(hours=hour) - datetime.timedelta(minutes=minute) - datetime.timedelta(second=second) - datetime.timedelta(microsecond=microsecond)
midnight_ts = midnight.timestamp()

那么有没有稍微简单一点的办法呢?可能还有一些人会这样写:

import datetime
now = datetime.datetime.now()
midnight_str = now.strftime('%Y-%m-%d 00:00:00')
midnight = datetime.datetime.strptime(midnights_str, '%Y-%m-%d %H:%M:%H')
midnight_ts = midnight.timestamp()

这样写虽然代码少了,但是由于对象转成了字符串又从字符串转成对象,效率降低了。

当然,还可能有人会从now对象里面拿出年月日,然后再通过调用datetime手动生成今天0点datetime对象。。。

方法很多,但是实际上,datetime自带了一个替换时分秒的功能:

import datetime
now = datetime.datetime.now()
midnight = now.replace(hour=0, minute=0, second=0, microsecond=0)
midnight_ts = midnight.timestamp()
目录
相关文章
|
6月前
|
Unix 定位技术
什么是时间戳?时间戳的获取方式
什么是时间戳?时间戳的获取方式
|
JavaScript 前端开发
时间戳(获取时间戳
时间戳通常是指自某个特定时间(如1970年1月1日00:00:00 UTC)以来的秒数或毫秒数。在JavaScript中,可以使用Date对象来处理时间戳。
|
前端开发
如何进行时间戳的大小比较
如何进行时间戳的大小比较
80 0
|
安全 Java API
时区和时间戳
时区和时间戳
|
存储 Unix Linux
文件的时间戳
文件的时间戳
322 0
|
Java 数据库
日期转时间戳格式
日期转时间戳格式
201 0
时间戳转换为日期格式
时间戳转换为日期格式
260 0