首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python 学习手册
Python Cookbook
Python 基础教程
Python Sites
PyPI - Python Package Index
http://www.simple-is-better.com/
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
华为云
V2EX  ›  Python

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

  •  
  •   fankcoder · 8 天前 · 654 次点击

    time1 = "20181010" time2 = "20181012"

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

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

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


    但是就是格式有异常的,那就可能出错了。
        2
    crab   8 天前   ♥ 1
    只是到日期直接字符串
        3
    ranoff   8 天前   ♥ 1
    格式有保障的话直接比较,没有的话还是先转一下比较好
        4
    xFrank   8 天前   ♥ 1
    可以先转化为 datetime.datetime,然后就可以计算差值,比较大小了
        5
    zivyou   8 天前   ♥ 1
    先做参数校验,再直接比较字符串,比较稳妥。
        6
    fankcoder   8 天前
    好的,感谢~
        7
    qbmiller   8 天前   ♥ 1
    这种是不是 可以直接 int 比较了...
        8
    ClutchBear   8 天前
    直接比较的缺陷是
    比如 20180809
    可以写成 2018809
    这样比较就有可能出错了,
    最好转成 datetime.datetime
        9
    JCZ2MkKb5S8ZX9pq   8 天前
    格式有保证的话直接 int 就好了,甚至不考虑好读的话,可以 timestamp//86400 更短一点。
        10
    jeadong   3 天前
    前一段时间我也做过比较,然后我就说一句,MS 的时间原点和 LINUX 的时间原点不是同一天。
    如果你从 EXCEL 里提取日期,要考虑这个。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   867 人在线   最高记录 3762   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 16ms · UTC 23:51 · PVG 07:51 · LAX 16:51 · JFK 19:51
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1