Преобразование строки в форматированную строку даты-времени с использованием Python
Я пытаюсь преобразовать строку "20091229050936" в "05:09 29 декабря 2009 (UTC)"
>>>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'
Ясно, что я допустил ошибку: время не так, это объект datetime! Он получил дату и компонент времени!
>>>import datetime
>>>s = datetime.strptime("20091229050936", "%Y%m%d%H%M%S")
дает
AttributeError: 'module' object has no attribute 'strptime'
Как я хотел преобразовать строку в форматированную строку даты?
Ответы
Ответ 1
time.strptime
возвращает a 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
Для объектов datetime
strptime
является статическим методом класса datetime
, а не свободной функцией в 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)
Ответ 3
Для меня это лучше всего, и он работает в 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")
Ответ 4
from datetime import datetime
s = datetime.strptime("20091229050936", "%Y%m%d%H%M%S")
print("{:%H:%M %d %B %Y (UTC)}".format(s))
Ответ 5
Вы можете использовать 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)")