请教个问题,关于时间字符串比较大小

2018-10-12 10:32:58 +08:00
 fankcoder

time1 = "20181010" time2 = "20181012"

这两个时间比较大小,转为时间戳或字符串直接比较都有结果

我想问如果用简单方法(字符串)直接比较会不会有什么缺点(隐患)?

3003 次点击
所在节点    Python
10 条回复
ThirdFlame
2018-10-12 10:43:09 +08:00
你要是能保证格式绝对都是 yyyymmdd 那么用字符串比较也没问题。
字符串比较的时候是从左往右逐个比较的 按照 ascii 值进行的。 不存在大数字比小数字 ascii 值小的情况。


但是就是格式有异常的,那就可能出错了。
crab
2018-10-12 10:45:07 +08:00
只是到日期直接字符串
ranoff
2018-10-12 10:46:41 +08:00
格式有保障的话直接比较,没有的话还是先转一下比较好
xFrank
2018-10-12 10:48:19 +08:00
可以先转化为 datetime.datetime,然后就可以计算差值,比较大小了
zivyou
2018-10-12 11:02:10 +08:00
先做参数校验,再直接比较字符串,比较稳妥。
fankcoder
2018-10-12 12:30:03 +08:00
好的,感谢~
qbmiller
2018-10-12 12:36:54 +08:00
这种是不是 可以直接 int 比较了...
ClutchBear
2018-10-12 13:04:14 +08:00
直接比较的缺陷是
比如 20180809
可以写成 2018809
这样比较就有可能出错了,
最好转成 datetime.datetime
JCZ2MkKb5S8ZX9pq
2018-10-12 18:35:11 +08:00
格式有保证的话直接 int 就好了,甚至不考虑好读的话,可以 timestamp//86400 更短一点。
jeadong
2018-10-17 14:25:26 +08:00
前一段时间我也做过比较,然后我就说一句,MS 的时间原点和 LINUX 的时间原点不是同一天。
如果你从 EXCEL 里提取日期,要考虑这个。

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

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

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

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

© 2021 V2EX