V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
fankcoder
V2EX  ›  Python

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

  •  
  •   fankcoder ·
    fankcoder · 2018-10-12 10:32:58 +08:00 · 2852 次点击
    这是一个创建于 2016 天前的主题,其中的信息可能已经有所发展或是发生改变。

    time1 = "20181010" time2 = "20181012"

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

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

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


    但是就是格式有异常的,那就可能出错了。
    crab
        2
    crab  
       2018-10-12 10:45:07 +08:00   ❤️ 1
    只是到日期直接字符串
    ranoff
        3
    ranoff  
       2018-10-12 10:46:41 +08:00   ❤️ 1
    格式有保障的话直接比较,没有的话还是先转一下比较好
    xFrank
        4
    xFrank  
       2018-10-12 10:48:19 +08:00   ❤️ 1
    可以先转化为 datetime.datetime,然后就可以计算差值,比较大小了
    zivyou
        5
    zivyou  
       2018-10-12 11:02:10 +08:00   ❤️ 1
    先做参数校验,再直接比较字符串,比较稳妥。
    fankcoder
        6
    fankcoder  
    OP
       2018-10-12 12:30:03 +08:00
    好的,感谢~
    qbmiller
        7
    qbmiller  
       2018-10-12 12:36:54 +08:00   ❤️ 1
    这种是不是 可以直接 int 比较了...
    ClutchBear
        8
    ClutchBear  
       2018-10-12 13:04:14 +08:00
    直接比较的缺陷是
    比如 20180809
    可以写成 2018809
    这样比较就有可能出错了,
    最好转成 datetime.datetime
    JCZ2MkKb5S8ZX9pq
        9
    JCZ2MkKb5S8ZX9pq  
       2018-10-12 18:35:11 +08:00
    格式有保证的话直接 int 就好了,甚至不考虑好读的话,可以 timestamp//86400 更短一点。
    jeadong
        10
    jeadong  
       2018-10-17 14:25:26 +08:00
    前一段时间我也做过比较,然后我就说一句,MS 的时间原点和 LINUX 的时间原点不是同一天。
    如果你从 EXCEL 里提取日期,要考虑这个。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1073 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 18:43 · PVG 02:43 · LAX 11:43 · JFK 14:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.