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 楼的办法,用时间戳保存。
谢谢帮助。
感谢帮助。
多谢帮助。

