Питон `ГГГГ-ММ-ДД`

В Python, каков наилучший способ получитьRFC 3339?YYYY-MM-DD текст из вывода gtk.Calendar::get_date()?

3 ответа

Решение

Спасибо Марку и treeface за решения, но, кажется, я изобрел лучший:

year, month, day = cal.get_date()
return '{0:04d}-{1:02d}-{2:02d}'.format(year, month+1, day)

Это решение короче, его легче понять (на мой взгляд), и я считаю, что оно требует меньше обработки, поскольку оно исключает этап, на котором кортеж преобразуется во время UNIX.

Согласно документам, get_date возвращает кортеж (год, месяц, день), где месяц от 0 до 11, а день от 1 до 31, поэтому:

import datetime
dtTuple = calControl.get_date()
dtObj = datetime.datetime(dtTuple[0], dtTuple[1] + 1, dtTuple[2]) #add one to month to make it 1 to 12
print dtObj.strftime("%Y-%m-%d")

Это может быть полезно для вас:

http://www.tutorialspoint.com/python/time_strftime.htm

Я также только что искал этот метод gtk get_date, и мне удалось найти некоторый код, который обрабатывает его следующим образом:

//here replace "self.window.get_date()" with "gtk.Calendar::get_date()"
year, month, day = self.window.get_date()
mytime = time.mktime((year, month+1, day, 0, 0, 0, 0, 0, 0))
return time.strftime("%x", time.gmtime(mytime))

Поэтому просто замените "%x" на "%G-%m-%d", и я думаю, что это сработает. Или, по крайней мере, стоит попробовать.

Другие вопросы по тегам