سؤال

في بيثون ، ما هي أفضل طريقة للحصول على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" وأعتقد أنه سيعمل. أو على الأقل يستحق المحاولة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top