
time1 = "20181010" time2 = "20181012"
这两个时间比较大小,转为时间戳或字符串直接比较都有结果
我想问如果用简单方法(字符串)直接比较会不会有什么缺点(隐患)?
1 ThirdFlame 2018-10-12 10:43:09 +08:00 你要是能保证格式绝对都是 yyyymmdd 那么用字符串比较也没问题。 字符串比较的时候是从左往右逐个比较的 按照 ascii 值进行的。 不存在大数字比小数字 ascii 值小的情况。 但是就是格式有异常的,那就可能出错了。 |
2 crab 2018-10-12 10:45:07 +08:00 只是到日期直接字符串 |
3 ranoff 2018-10-12 10:46:41 +08:00 |
4 xFrank 2018-10-12 10:48:19 +08:00 可以先转化为 datetime.datetime,然后就可以计算差值,比较大小了 |
5 zivyou 2018-10-12 11:02:10 +08:00 先做参数校验,再直接比较字符串,比较稳妥。 |
6 fankcoder OP 好的,感谢~ |
7 qbmiller 2018-10-12 12:36:54 +08:00 这种是不是 可以直接 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 里提取日期,要考虑这个。 |