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
SlipStupig
V2EX  ›  Python

如何将多种时间格式转化成统一格式呢

  •  
  •   SlipStupig · 2020-04-14 02:12:54 +08:00 · 1992 次点击
    这是一个创建于 1675 天前的主题,其中的信息可能已经有所发展或是发生改变。

    遇到了一个困难,需要将多种时间字符串转化成datetime对象,例如:

    2019-10-24 09:20:44
    2020-04-13
    2019-11-04  13:11
    04 月 13 日 10:41
    2012 年 7 月 13 日
    .....
    

    本来以为挺简单,但是由于时间格式太多了,不好一个个去适配,有什么办法可以自动识别,并且转化成标准时间格式呢?

    4 条回复    2020-04-14 13:39:28 +08:00
    Trim21
        1
    Trim21  
       2020-04-14 02:20:02 +08:00 via Android
    python-dateutil
    netnr
        2
    netnr  
       2020-04-14 08:00:52 +08:00
    用正则匹配后在组装,首先替换两个空格为一个空格

    \d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}
    \d{4}-\d{2}-\d{2}
    \d{4}-\d{2}-\d{2} \d{2}:\d{2}
    \d{2} 月 \d{2} 日 \d{2}:\d{2}
    \d{4} 年 (.*) 月 (.*) 日
    Cmdhelp
        3
    Cmdhelp  
       2020-04-14 10:19:04 +08:00
    python-arrow
    imanux
        4
    imanux  
       2020-04-14 13:39:28 +08:00
    推荐使用 moment, 比 arrow 轻量一些.

    ```python

    def date_identify():
    mixed = [
    '2019-10-24 09:20:44',
    '2020-04-13',
    '2019-11-04 13:11',
    '04 月 13 日 10:41',
    '2012 年 7 月 13 日',
    ]
    for m in mixed[:3]:
    print(moment.date(m).format('YYYYMMDD HH:mm:ss'))

    ch1 = mixed[3]
    print(moment.date(ch1, 'MM 月 DD 日 HH:mm').format('YYYYMMDD HH:mm:ss'))

    ch1 = mixed[4]
    print(moment.date(ch1, 'YYYY 年 M 月 DD 日').format('YYYYMMDD HH:mm:ss'))

    ```

    当然如果还有更多的格式, 需要手动一个个匹配的.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2645 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 15:50 · PVG 23:50 · LAX 07:50 · JFK 10:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.