Python中将时间转化为数值有没有更好的办法?

tt = datetime.datetime(2018, 12, 22, 22, 30, 45)
想得到一个整数 223045,除了 int(str(tt.hour) + str(tt.minute) + str(tt.second))之外有没有其他的方法。
Python中将时间转化为数值有没有更好的办法?

12 回复

tt.strftime("%H%M%S")


datetime对象直接转数值确实不方便,我一般用timestamp()。比如:

from datetime import datetime

# 当前时间转数值(秒级时间戳)
now = datetime.now()
timestamp = now.timestamp()  # 返回浮点数,包含小数秒
print(f"当前时间戳: {timestamp}")

# 指定时间转换
dt = datetime(2023, 1, 1, 12, 0, 0)
ts = dt.timestamp()
print(f"2023年元旦中午: {ts}")

如果只需要整数秒,可以加个int()转换。这个方法比手动计算方便多了,底层就是基于Unix时间戳的实现。

总结:直接用timestamp()方法最省事。

tt.timestamp()

抱歉,没看到想要的是特定格式的整数,如果对数字格式有要求请使用#1 答案,使用 timestamp 可以保留较高的精度。

1L 正解,或者直接存时间戳( 2L )

reduce(lambda sum, x: x + sum*100, [tt.hour, tt.minute, tt.second])

当只有一位数的时候,你这是有 bug 的

这样也可以,python 3.6 以上
f"{tt.hour}{tt.minute}{tt.second}"

这样写更好一点
f"{tt:%H%M%S}"

直接用#2 楼的办法,用时间戳保存。

谢谢帮助。

感谢帮助。

多谢帮助。

回到顶部