Python:如何将 Sep 07 2014(字符串)的格式更改为 dd/mm/yyyy



>我将日期作为字符串,格式为: Sep 07 2014我愿意将其更改为这种格式 dd/mm/yyyy

目前我正在使用此代码,我收到以下错误:

for l in line:
    l = l.strip('n').replace('"','')
    bl_time = l.split('t')
    print bl_time
    s = datetime.datetime.strptime(bl_time,"%b %d %Y")

错误:

Traceback (most recent call last):
  File "/Users/Documents/scripts/whois.py", line 25, in <module>
    s = datetime.datetime.strptime(bl_time,"%b %d %Y")
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/_strptime.py", line 325, in _strptime
    (data_string, format))
ValueError: time data 'bl_date' does not match format '%b %d %Y'

bl_time is :
May 03 2014
Sep 05 2014

and  print '"{}"'.format(bl_time) is :
"May 03 2014"
"Sep 05 2014"

有人可以帮忙吗?

参考:

  • https://docs.python.org/2/library/datetime.html#datetime.datetime.strptime
  • https://docs.python.org/2/library/datetime.html#strftime-strptime-behavior

您可以这样做:

import datetime
d = datetime.datetime.strptime("Sep 07 2014", "%b %d %Y")
print d
print d.strftime("%d/%m/%Y")
>>> dt  = datetime.datetime.strptime("Sep 07 2014", "%b %d %Y")
>>> dt
datetime.datetime(2014, 9, 7, 0, 0)
>>> dt.strftime("%d/%m/%Y")
'07/09/2014'

这是将您的文本字符串转换为日期时间对象(利用 strptime ),然后使用strftime根据所需的格式对其进行格式化

我会使用优秀的python-dateutil库:

from dateutil.parser import parse
try:
    parse(bl_time).strftime("%m/%d/%Y")
except:
    print "could not parse %s" % bl_time

最新更新