Преобразование (YYYY-MM-DD-HH: MM: SS) дата времени
Я хочу преобразовать строку, подобную этой "29-Apr-2013-15:59:02"
в нечто более удобное.
Тире можно легко заменить пробелами или другими символами. Этот формат был бы идеальным: "YYYYMMDD HH:mm:ss (20130429 15:59:02)"
.
Edit:
Извините, я не видел конкретного ответа в другом сообщении. Но опять же, я не осведомлен, поэтому мог бы взглянуть на решение и не знал этого. У меня это работает, но я бы не стал считать это "красивым".
#29-Apr-2013-15:59:02
import sys, datetime, time
#inDate = sys.argv[1]
inDate = 29-Apr-2013-15:59:02
def getMonth(month):
monthDict = {'Jan':'01','Feb':'02','Mar':'03','Apr':'04','May':'05','Jun':'06','Jul':'07','Aug':'08','Sep':'09','Oct':'10','Nov':'11','Dec':'12'}
for k, v in monthDict.iteritems():
if month == k:
return v
day = inDate[:2]
#print day
month = inDate[3:6]
#print month
year = inDate[7:11]
#print year
time = inDate[-8:]
#print time
newDate = year+getMonth(month)+day
newDateTime = newDate+" "+time
print newDate
print newDateTime
Любые мысли об улучшении?
Ответы
Ответ 1
Используйте datetime.strptime() для синтаксического анализа строки inDate
в объекте даты, используйте datetime.strftime( ) для вывода в любом формате, который вам нравится:
>>> from datetime import datetime
>>> inDate = "29-Apr-2013-15:59:02"
>>> d = datetime.strptime(inDate, "%d-%b-%Y-%H:%M:%S")
>>> d
datetime.datetime(2013, 4, 29, 15, 59, 2)
>>> d.strftime("YYYYMMDD HH:mm:ss (%Y%m%d %H:%M:%S)")
'YYYYMMDD HH:mm:ss (20130429 15:59:02)'
Ответ 2
Вы исследовали дату?? //
http://labix.org/python-dateutil
Я нашел аналогичный вопрос для вас:
Как преобразовать строку даты и времени ISO 8601 в объект Datetime Python?
Ответ 3
Вы хотите посмотреть datetime
, в частности strptime
.