gpt4 book ai didi

python - 在 Python 中将日期时间列表转换为日期

转载 作者:太空狗 更新时间:2023-10-30 00:54:04 27 4
gpt4 key购买 nike

我有一个日期时间列表,想使用以下代码将其转换为日期:

dates = (datetime.strptime(ts, '%Y-%m-%d %H:%M:%S') for ts in timestamps)
date_strings = [datetime.strftime(d, '%m-%d-%Y') for d in dates]

日期时间列表如下所示:

[datetime.datetime(2016, 11, 21, 0, 0), datetime.datetime(2016, 11,22, 0, 0), datetime.datetime(2016, 11, 23, 0, 0)]

我收到以下错误消息:

TypeError: strptime() argument 1 must be str, not datetime.datetime

最佳答案

您的timestamps 序列中的值似乎不是字符串;它们已经是 datetime 对象。您不需要进一步解析这些。您也可能混合使用字符串和 datetime 对象;您看到的异常被抛出是因为timestamps 中的至少一个值 已经是datetime 实例。

只需调用 datetime.strftime() methodts 中的所有对象上格式化它们:

date_strings = [d.strftime('%m-%d-%Y') for d in timestamps]

演示:

>>> import datetime
>>> timestamps = [datetime.datetime(2016, 11, 21, 0, 0), datetime.datetime(2016, 11, 22, 0, 0), datetime.datetime(2016, 11, 23, 0, 0)]
>>> [d.strftime('%m-%d-%Y') for d in timestamps]
['11-21-2016', '11-22-2016', '11-23-2016']

如果您在 timestamps 中有 mix 字符串和 datetime 实例,则必须进行一些额外处理:

def convert_as_needed(ts):
try:
# parse strings
datetime.strptime(ts, '%Y-%m-%d %H:%M:%S')
except TypeError:
# assume it is already a datetime object
return ts

dates = map(convert_as_needed, timestamps)
date_strings = [d.strftime('%m-%d-%Y') for d in dates]

关于python - 在 Python 中将日期时间列表转换为日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41387503/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com