2

在 Python 中,从 的输出中获取 RFC 3339YYYY-MM-DD文本的最佳方法是gtk.Calendar::get_date()什么?

4

3 回答 3

4

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

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

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

于 2011-02-21T20:31:32.853 回答
2

根据文档,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")
于 2010-08-16T17:08:37.023 回答
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))

所以只需用“%G-%m-%d”替换“%x”,我认为它会起作用。或者至少值得一试。

于 2010-08-16T16:55:12.697 回答