Python `AAAA-MM-DD`
Pregunta
En Python, ¿cuál es la mejor manera de obtener el
RFC 3339 YYYY-MM-DD
texto de la salida del gtk.Calendar::get_date()
?
Solución
Gracias a Mark y treeface para las soluciones, pero parece que he inventado uno mejor:
year, month, day = cal.get_date()
return '{0:04d}-{1:02d}-{2:02d}'.format(year, month+1, day)
Esta solución es más corto, más fácil de entender (en mi opinión), y creo que necesita menos procesamiento ya que los cortes a cabo la etapa en la tupla se convierte en el tiempo UNIX.
Otros consejos
De acuerdo con la docs , los get_date devuelve una tupla de (año, mes, día), en el mes 0 a 11 y día es de 1 a 31, por lo que:
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")
Esto podría ser útil para usted:
http://www.tutorialspoint.com/python/time_strftime.htm
También acabo buscó a este método GTK get_date y yo era capaz de encontrar un código que lo maneja como esta:
//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))
Así que basta con sustituir "% x" con "% G% m-% d" y yo creo que funcionaría. O por lo menos vale la pena intentarlo.