我有很多日期字符串在这个表单中:
30th November 2009
31st March 2010
30th September 2010
我要他们这样:
YYYYMMDD
目前我正在做这件事:
parsed_date = "30th November 2009"
part = parsed_date.split(' ')
daymonth = part[0].strip(string.ascii_letters)
mytime = daymonth+" "+part[1]+" "+part[2]
time_format = "%d %B %Y"
cdate = time.strptime(mytime, time_format)
newdate = str(cdate[0])+str(cdate[1])+str(cdate[2])
很有效,但我相信有更好的方法。。。
尝试dateutil:
输出:
或者如果要使用标准
datetime
模块:在Python3.7中,可以使用isoformat()
你几乎可以用^{} and ^{} from the ^{} module 的组合来实现这一点。
我们遇到的问题是,内置格式支持像
30 November 2010
这样的日期,但不支持30th November 2010
。所以在下面的例子中,我用a regular expression substitution去掉了有问题的字符。(正则表达式使用一个look behind来查看“st”、“nd”、“rd”或“th”前面是否有数字,如果是,则用空字符串替换它,从而将其从字符串中删除。)相关问题 更多 >
编程相关推荐