【问题标题】:Formatting datetime in python在python中格式化日期时间
【发布时间】:2014-01-16 19:15:56
【问题描述】:
print str(now.month) + str(now.day) + str(now.year)

结果:1162014

如何进一步格式化结果以添加斜杠:11/6/2014

另外,我将如何格式化小时、分钟和秒? hh:mm:ss

将日期时间显示为月/日/年和小时:分钟:秒:

import datetime
now = datetime.datetime.now()
print datetime.datetime.strftime(now, '%m/%d/%Y')
print datetime.datetime.strftime(now, '%H:%M:%S')

将日期时间显示为月/日/年和时:分:秒在一行中:

import datetime
now = datetime.datetime.now()
print datetime.datetime.strftime(now, '%m/%d/%Y %H:%M:%S')

特别感谢 senshin 的帮助

【问题讨论】:

  • 确保在打印时间的语句中检查大小写 - 小写 %m 表示“月”,而大写 %M 表示“分钟”。

标签: python string datetime formatting


【解决方案1】:

使用datetime.strftime()。我假设您的意思是 1/16/2014,而不是 11/6/2014,因为今天是 1 月 16 日。

>>> import datetime
>>> now = datetime.datetime.now()
>>> datetime.datetime.strftime(now, '%m/%d/%Y')
'01/16/2014'
>>> datetime.datetime.strftime(now, '%H:%M:%S')
'14:18:16'
>>> datetime.datetime.strftime(now, '%I:%M:%S')
'02:18:16'

如果出于某种原因您不想使用datetime.strftime(),您可以改为:

>>> print '/'.join(map(str, [now.month, now.day, now.year]))
'1/16/2014'

【讨论】:

  • @user3201139 不,您还应该使用datetime.strftime 来格式化时间部分! datetime.datetime.strftime(now, '%H:%M:%S')。或者,如果您想要 12 小时的时间,请改用 %I:%M:%S。
  • 谢谢,我马上试试。第一种格式与第二种格式相比有什么好处?
  • @user3201139 我猜是可维护性。使用datetime.strftime 更简洁,这也被认为是Python 中格式化日期的标准方式。如果您想稍后更改时间格式,它还为您提供了更大的灵活性。
  • 我如何将它们显示在表单的同一行:mm/dd/yyyy hh:mm:ss
  • @user3201139 你应该阅读strftime and strptime docs。对于该格式,您只需将日期和时间规范放在一起。 %m/%d/%Y %H:%M:%S.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-10-06
  • 2011-11-12
  • 2011-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多