Domanda

In Python, qual è il modo migliore per ottenere il RFC 3339 YYYY-MM-DD testo dalla uscita del gtk.Calendar::get_date()?

È stato utile?

Soluzione

Grazie a Marco e treeface per le soluzioni, ma a quanto pare ho inventato uno migliore:

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

Questa soluzione è più corto, più facile da capire (a mio parere), e credo che richiede meno di elaborazione in quanto riduce la fase in cui la tupla viene convertita in tempo di UNIX.

Altri suggerimenti

Secondo il docs , i get_date restituisce una tupla di (anno, mese, giorno), dove il mese 0-11 e il giorno è 1 a 31, in modo da:

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")

Questo potrebbe essere utile a voi:

http://www.tutorialspoint.com/python/time_strftime.htm

Inoltre ho appena guardato intorno per questo metodo gtk get_date e sono stato in grado di trovare un po 'di codice che gestisce in questo modo:

//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))

Quindi, basta sostituire "% x" con "% G-% m-% d" e penso che avrebbe funzionato. O almeno la pena di provare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top