有没有办法将日期名称转换为日期时间?

时间:2020-10-15 19:03:38

标签: python datetime

我的csv文件有一列,其中包含周一至周日的星期几。将这些转换为日期时间格式的最佳方法是什么?我尝试过:

datetime.strptime(day, '%A')

但是得到错误: 时间数据与格式“%A”不匹配

知道我在做什么错吗?!

2 个答案:

答案 0 :(得分:0)

import datetime
now = datetime.datetime.now()
print(now.strftime("%A"))

您可以尝试这个兄弟,我希望它对您有用

答案 1 :(得分:0)

如果只有日期名称,则必须选择一个为期7天的开始日期的基准日期(例如今天的日期)。由此,您可以构建一个字典,将日期名称与实际日期进行映射,然后使用它来转换字段值:

# setup ...
from datetime import *
baseDate  = datetime.today() # current day or some other date (e.g. last monday)
dateOfDay = { dt.strftime("%A"):dt for dow in range(7) for dt in [baseDate+timedelta(dow)] }

# to obtain the date, simply access the dictionary with the day name
dateOfDay["Monday"] 

# print dates for each possible day
for day in dateOfDay:
    print(day,dateOfDay[day].strftime("%x"))

如果您的数据跨越多个星期并且按时间顺序排列,则可以随时进行更新。这可以通过检查当天的日期是否低于上一次输入的日期来实现。这表示您需要将基准日期提前7天(baseDate += timedelta(7)),然后从该新日期重新计算dateOfDay字典。然后使用新的映射获取日期并恢复数据遍历。

请注意,仅当您两次输入数据之间的间隔时间不超过6天或者您有其他方法确定数据中的周界时,此方法才有效。

相关问题