我正在尝试将字符串“20091229050936”转换为“2009年12月29日(UTC)时间:05:09”
>>>import time
>>>s = time.strptime("20091229050936", "%Y%m%d%H%M%S")
>>>print s.strftime('%H:%M %d %B %Y (UTC)')
给出
AttributeError: 'time.struct_time' object has no attribute 'strftime'
显然,我犯了一个错误:时间错了,这是一个日期时间的对象!它有一个日期和一个时间组件!
>>>import datetime
>>>s = datetime.strptime("20091229050936", "%Y%m%d%H%M%S")
给出
AttributeError: 'module' object has no attribute 'strptime'
我打算如何将字符串转换为格式化的日期字符串?
答案 0 :(得分:41)
对于datetime
个对象,strptime
是datetime
类的static method,而不是datetime
模块中的自由函数:
>>> import datetime
>>> s = datetime.datetime.strptime("20091229050936", "%Y%m%d%H%M%S")
>>> print s.strftime('%H:%M %d %B %Y (UTC)')
05:09 29 December 2009 (UTC)
答案 1 :(得分:11)
time.strptime
返回time_struct
; time.strftime
接受time_struct
作为可选参数:
>>>s = time.strptime(page.editTime(), "%Y%m%d%H%M%S")
>>>print time.strftime('%H:%M %d %B %Y (UTC)', s)
给出
05:09 29 December 2009 (UTC)
答案 2 :(得分:1)
对我而言,这是最好的,它也适用于Google App Engine
显示UTC-4的示例
import datetime
UTC_OFFSET = 4
local_datetime = datetime.datetime.now()
print (local_datetime - datetime.timedelta(hours=UTC_OFFSET)).strftime("%Y-%m-%d %H:%M:%S")
答案 3 :(得分:1)
from datetime import datetime
s = datetime.strptime("20091229050936", "%Y%m%d%H%M%S")
print("{:%H:%M %d %B %Y (UTC)}".format(s))
答案 4 :(得分:1)
您可以使用easy_date轻松实现:
import date_converter
my_datetime = date_converter.string_to_string("20091229050936", "%Y%m%d%H%M%S", "%H:%M %d %B %Y (UTC)")