Python `YYYY-MM-DD` 格式
在Python中,如何从gtk.Calendar::get_date()
的输出中获取RFC 3339格式的日期 YYYY-MM-DD
呢?
3 个回答
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",我觉得这样就可以了。或者至少试试看也是值得的。
2
根据文档,get_date这个方法会返回一个包含(年、月、日)的元组。其中,月份是从0到11,表示1月到12月,而日期是从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")
4
感谢Mark和treeface提供的解决方案,但我觉得我想出了一个更好的办法:
year, month, day = cal.get_date()
return '{0:04d}-{1:02d}-{2:02d}'.format(year, month+1, day)
这个办法更简短,理解起来也更简单(这是我个人的看法),而且我认为它处理起来更省力,因为它省去了把元组转换成UNIX时间的步骤。