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

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

2 голосов
/ 16 августа 2010

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

Ответы [ 3 ]

4 голосов
/ 21 февраля 2011

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

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

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

2 голосов
/ 16 августа 2010

Согласно документам , 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")
0 голосов
/ 16 августа 2010

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

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", и я думаю, что это сработает. Или, по крайней мере, стоит попробовать.

...