您如何获取随机格式化的日期并弄清楚该格式是什么?
我正在读取文件中的列,其中之一是日期。但是,我遇到了许多不同的格式:这是示例。
strdate = ["6/4/2014 12:55:36 AM", "2014-06-04 6:27:55 PM"], etc.
解析日期的最佳(最快)方法似乎是dateutil.parser.parse()
。但是,我也想知道在每个文件中读取的字符串的格式,因此下次在类似文件中遇到日期时,不必使用parse()
。这应该都是自动的。读取文件,弹出日期,然后保存格式,以便下次读取类似文件时,可以使用datetime
指定的格式。
您如何检索日期格式?
这是一个使用try / except机制的示例,该机制返回一个formatter
便利函数,可以在以后的尝试中调用它:
from datetime import datetime
strdate = ["6/4/2014 12:55:36 AM", "2014-06-04 6:27:55 PM"]
def get_date_format(text):
date_formats = (
'%d/%m/%Y %H:%M:%S %p',
'%Y-%m-%d %H:%M:%S %p'
) # <--- adjust as necessary
for date_format in date_formats:
try:
datetime.strptime(text, date_format)
return lambda L: datetime.strptime(L, date_format)
except ValueError:
pass
raise ValueError("No suitable formats found")
for item in strdate:
formatter = get_date_format(item)
print formatter(item)
# 2014-04-06 12:55:36
# 2014-06-04 06:27:55
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句