如何从字符串中打印Python中的日期和时间?

时间:2014-09-25 18:55:00

标签: python

应该很快,但我不能为我的生活做出这一点。

我给出了以下字符串:

  • 201408110000
  • 201408120001
  • 201408130002

我通过以下内容加载了日期(?)时间对象:

dt = time.strptime(datestring, '%Y%m%d%H%M%S')

其中datestring是字符串。

从那里,我如何输出以下内容:

  • 11 - 8 - 14
  • 12 - 8 - 14
  • 13 - 8 - 14

我试过了str(dt),但是它给了我的全部内容真是奇怪:

  

time.struct_time(tm_year = 2014,tm_mon = 8,tm_mday = 11,tm_hour = 12,   tm_min = 1,tm_sec = 5,tm_wday = 0,tm_yday = 223,tm_isdst = -1)

我做错了什么?到目前为止我向dt添加的任何内容都会给我attribute does not exist或其他内容。

4 个答案:

答案 0 :(得分:2)

使用time模块时,它返回时间结构类型。使用datetime返回日期时间类型。

from datetime import datetime

datestring = '201408110000'

dt = datetime.strptime(datestring, '%Y%m%d%H%M%S')

print dt
2014-08-11 00:00:00

print dt.strftime("%d-%b-%Y")
11-Aug-2014

print dt.strftime("%d-%b-%y")
11-Aug-14

答案 1 :(得分:2)

使用 strftime

>> dt = time.strftime('%d-%b-%Y', dt)
>> print dt
11-Aug-2014

答案 2 :(得分:0)

from datetime import datetime
datestring = "201408110000"
print datetime.strptime(datestring, '%Y%m%d%H%M%S').strftime("%d-%b-%Y")
11-Aug-2014

答案 3 :(得分:0)

如果您正在对各种输入时间格式进行大量解析,请考虑安装和使用dateutil包。 parser模块将使用各种时间格式而无需指定,例如这种简洁的" one-liner":

from dateutil import parser
datestring = '201408110000'
print parser.parse(datestring).strftime("%d-%b-%Y")

这使用parser将日期字符串包含在datetime中,然后使用datetime.strftime()重新格式化,不要与time.strftime()混淆,用于不同的答案。

https://pypi.python.org/pypi/python-dateutil标记处查看详情。