Dio*_*lor 6 python datetime python-datetime python-dateutil
我喜欢用dateutil.parser.parse
模块解析日期时间字符串.这很简单.但是我在我的代码中注意到我必须检查对象是否确实在8601(并且知道).
我的结构是:
if parse(datetime).tzinfo==None:
#do something
else:
#make it aware
#do something
Run Code Online (Sandbox Code Playgroud)
我希望实现以下目标:
if <IS-8601>:
if parse(datetime).tzinfo==None:
#do something
else:
#make it aware
#do something
else:
pass
Run Code Online (Sandbox Code Playgroud)
如果我有一个8601像2014-02-28T22:30:00+0200
解析实用程序做它的工作.
但是,如果我有一个2014-03-20
字符串解析将在对象上添加时间.这没错,只是不需要的:2014-03-20 00:00:00
那么如何检查对象是否在8601中?如果在8601,它是否知道?我不介意换到另一个日期时间库.
您可以通过datetime模块解析它并ValueError
在处理之前检查异常dateutil.parser.parse
:
>>> import datetime
>>> datetime.datetime.strptime("2014-03-20", '%Y-%m-%d')
datetime.datetime(2014, 3, 20, 0, 0)
>>> datetime.datetime.strptime("2014-02-28T22:30:00+0200", '%Y-%m-%d')
Traceback (most recent call last):
File "<pyshell#134>", line 1, in <module>
datetime.datetime.strptime("2014-02-28T22:30:00+0200", '%Y-%m-%d')
File "C:\Python33\lib\_strptime.py", line 500, in _strptime_datetime
tt, fraction = _strptime(data_string, format)
File "C:\Python33\lib\_strptime.py", line 340, in _strptime
data_string[found.end():])
ValueError: unconverted data remains: T22:30:00+0200
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4384 次 |
最近记录: |