我的日期格式为d/m/yyyy
(例如,1987年2月28日)。
我想以ISO格式:1987-02-28
我认为我们可以这样做,但似乎有点沉重:
str_date = '2/28/1987'
arr_str = re.split('/', str_date)
iso_date = arr_str[2]+'-'+arr_str[0][:2]+'-'+arr_str[1]
有没有其他方法可以用Python做到这一点?
答案 0 :(得分:17)
您可以使用datetime
module:
datetime.datetime.strptime(str_date, '%m/%d/%Y').date().isoformat()
或者,作为运行代码:
>>> import datetime
>>> str_date = '2/28/1987'
>>> datetime.datetime.strptime(str_date, '%m/%d/%Y').date().isoformat()
'1987-02-28'
答案 1 :(得分:6)
我会使用datetime
模块来解析它:
>>> from datetime import datetime
>>> date = datetime.strptime('2/28/1987', '%m/%d/%Y')
>>> date.strftime('%Y-%m-%d')
'1987-02-28'
答案 2 :(得分:1)
你所拥有的几乎就是我如何编写它,我建议的唯一主要改进是使用普通的split
代替re.split
,因为你不需要正则表达式:
arr_str = str_date.split('/')
如果您需要做更复杂的事情,我建议使用time.strftime
,但这比字符串抨击显着更多。