如何在python中将字符串'Y-m-d h-m-s'转换为时间结构'Y-m-d'



我在一个json文件中有以下日期,看起来像这个

dataset = [{'date': '2017-01-27 21:56:57'}]

如何将其转换为时间Struct,使其只显示"2017-01-27">

正在使用以下代码。。。

import json
import time
for d in dataset:
d['timeStruct'] = time.strptime(d['date'], '%Y-%m-%d')

给我一个错误ValueError: unconverted data remains: 05:21:16

有没有一种方法可以转换为Y-m-d,而不需要分割小时、分钟和秒的部分?在SQL中,它会根据'%Y-%m-%d'自动转换

多亏了@Peter Wood,答案得到了改进。

您可以使用'{:%Y-%m-%d}'.format(t)

from datetime import datetime
if __name__ == '__main__':
dataset = [{'date': '2017-01-27 21:56:57'}]
for d in dataset:
d['timeStruct'] = '{:%Y-%m-%d}'.format(datetime.strptime(d['date'], '%Y-%m-%d %H:%M:%S'))

t变量:

2017-1-27

您可以使用dateutil模块。

import dateutil
dataset = [{'date': '2017-01-27 21:56:57'}]
for d in dataset:
d['timeStruct'] = dateutil.parser.parse(d['date']).strftime('%Y-%m-%d')
print(dataset)

输出:

[{'date': '2017-01-27 21:56:57', 'timeStruct': '2017-01-27'}]

您必须首先使用strptime()将其转换为元组,然后使用strftime():再次将其格式化为字符串

dataset = [{'date': '2017-01-27 21:56:57'}]
for d in dataset:
timetuple = time.strptime(d['date'],"%Y-%m-%d %H:%M:%S")
d['timeStruct'] = time.strftime("%Y-%m-%d",timetuple)
print(dataset)
>> [{'date': '2017-01-27 21:56:57', 'timeStruct': '2017-01-27'}]

最新更新