格式日期没有破折号?

时间:2015-03-27 07:28:45

标签: python date

在Python中,我们可以通过以下方式将日期转换为字符串:

>>> import datetime
>>> datetime.date(2002, 12,4).isoformat()
'2002-12-04'

我们如何将输出格式化为' 20021204',即没有破折号?

有两个功能,但我不知道如何指定格式:

  

date.strftime(format)
  返回表示日期的字符串,   由显式格式字符串控制。格式代码参考   小时,分钟或秒将看到0值。有关的完整列表   格式化指令,请参阅strftime()strptime()行为部分。

  

date.__format__(format)
  与date.strftime()相同。这样做   可以在使用时指定日期对象的格式字符串   str.format()。请参阅strftime()strptime()行为部分。

2 个答案:

答案 0 :(得分:12)

您使用的工具错误,请使用strftime

>>> datetime.date(2002, 12,4).strftime("%Y%m%d")
'20021204'

有关使用strftimestrptime的详细信息,请参阅strftime() and strptime() Behavior

对于您的具体情况,我将引用相关的摘录

  • %Y年份以世纪为十进制数。 1970年,1988年,2001年,2013年
  • %m月份为零填充十进制数。 01,02,...,12
  • %d作为零填充十进制数的月中的某一天。 01,02,...,31

或者,您可以随时删除或替换isoformat

中的连字符
>>> str(datetime.date(2002, 12,4)).translate(None,'-')
'20021204'

答案 1 :(得分:4)

您可以使用'%m%d%Y作为格式:

>>> d=datetime.date(2002, 12,4)
>>> d.strftime('%m%d%Y')
'12042002'

或者在您的第一个代码中,您可以使用str.replace

>>> datetime.date(2002, 12,4).isoformat().replace('-','')
'20021204'