Python`YYYY-MM-DD`

时间:2010-08-16 16:44:21

标签: python calendar gtk pygtk rfc3339

在Python中,最好的方法是什么 来自YYYY-MM-DD输出的 RFC 3339 gtk.Calendar::get_date() 文字?

3 个答案:

答案 0 :(得分:4)

感谢Mark和treeface的解决方案,但似乎我发明了一个更好的解决方案:

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

这个解决方案更短,更容易理解(在我看来),并且我相信它会减少处理,因为它会切断元组转换为UNIX时间的阶段。

答案 1 :(得分:2)

根据docs,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")

答案 2 :(得分:0)

这可能对您有用:

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”,我认为它会起作用。或者至少值得一试。