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

2018-12-22 22:19:17 +08:00
 songdg
tt = datetime.datetime(2018, 12, 22, 22, 30, 45)
想得到一个整数 223045,除了 int(str(tt.hour) + str(tt.minute) + str(tt.second))之外有没有其他的方法。
2152 次点击
所在节点    Python
11 条回复
AlisaDestiny
2018-12-22 22:31:05 +08:00
tt.strftime("%H%M%S")
takato
2018-12-22 22:34:27 +08:00
tt.timestamp()
takato
2018-12-22 22:36:51 +08:00
抱歉,没看到想要的是特定格式的整数,如果对数字格式有要求请使用#1 答案,使用 timestamp 可以保留较高的精度。
Kagari
2018-12-22 22:36:59 +08:00
1L 正解,或者直接存时间戳( 2L )
Herobs
2018-12-22 22:40:05 +08:00
reduce(lambda sum, x: x + sum*100, [tt.hour, tt.minute, tt.second])

当只有一位数的时候,你这是有 bug 的
silkriver
2018-12-22 22:43:48 +08:00
这样也可以,python 3.6 以上
f"{tt.hour}{tt.minute}{tt.second}"
silkriver
2018-12-22 22:54:36 +08:00
这样写更好一点
f"{tt:%H%M%S}"
gainsurier
2018-12-22 23:11:16 +08:00
直接用#2 楼的办法,用时间戳保存。
songdg
2018-12-23 19:11:46 +08:00
@AlisaDestiny 谢谢帮助。
songdg
2018-12-23 19:12:11 +08:00
@takato 感谢帮助。
songdg
2018-12-23 19:12:45 +08:00
@silkriver 多谢帮助。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/520086

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX