time1 = "20181010" time2 = "20181012"
这两个时间比较大小,转为时间戳或字符串直接比较都有结果
我想问如果用简单方法(字符串)直接比较会不会有什么缺点(隐患)?
1
ThirdFlame 2018-10-12 10:43:09 +08:00 1
你要是能保证格式绝对都是 yyyymmdd 那么用字符串比较也没问题。
字符串比较的时候是从左往右逐个比较的 按照 ascii 值进行的。 不存在大数字比小数字 ascii 值小的情况。 但是就是格式有异常的,那就可能出错了。 |
2
crab 2018-10-12 10:45:07 +08:00 1
只是到日期直接字符串
|
3
ranoff 2018-10-12 10:46:41 +08:00 1
格式有保障的话直接比较,没有的话还是先转一下比较好
|
4
xFrank 2018-10-12 10:48:19 +08:00 1
可以先转化为 datetime.datetime,然后就可以计算差值,比较大小了
|
5
zivyou 2018-10-12 11:02:10 +08:00 1
先做参数校验,再直接比较字符串,比较稳妥。
|
6
fankcoder OP 好的,感谢~
|
7
qbmiller 2018-10-12 12:36:54 +08:00 1
这种是不是 可以直接 int 比较了...
|
8
ClutchBear 2018-10-12 13:04:14 +08:00
直接比较的缺陷是
比如 20180809 可以写成 2018809 这样比较就有可能出错了, 最好转成 datetime.datetime |
9
JCZ2MkKb5S8ZX9pq 2018-10-12 18:35:11 +08:00
格式有保证的话直接 int 就好了,甚至不考虑好读的话,可以 timestamp//86400 更短一点。
|
10
jeadong 2018-10-17 14:25:26 +08:00
前一段时间我也做过比较,然后我就说一句,MS 的时间原点和 LINUX 的时间原点不是同一天。
如果你从 EXCEL 里提取日期,要考虑这个。 |