بيثون `yyyy-mm-dd`
سؤال
في بيثون ، ما هي أفضل طريقة للحصول علىRFC 3339 YYYY-MM-DD
نص من إخراج gtk.Calendar::get_date()
?
المحلول
بفضل Mark و Treeface على الحلول ، لكن يبدو أنني اخترعت واحدة أفضل:
year, month, day = cal.get_date()
return '{0:04d}-{1:02d}-{2:02d}'.format(year, month+1, day)
هذا الحل أقصر وأسهل في الفهم (في رأيي) ، وأعتقد أنه يأخذ معالجة أقل لأنه يقطع المرحلة التي يتم فيها تحويل tuple إلى وقت UNIX.
نصائح أخرى
بحسب ال مستندات, ، يعيد get_date tuple من (السنة والشهر واليوم) ، حيث من الشهر من 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" وأعتقد أنه سيعمل. أو على الأقل يستحق المحاولة.
لا تنتمي إلى StackOverflow