6.9.7 Il comportamento di strftime()

Gli oggetti date, datetime e time implementano tutti un metodo strftime(format), per creare una stringa rappresentante il tempo, secondo una specifica stringa di formato. In termini generali, l'istruzione d.strftime(fmt) agisce come time.strftime(fmt, d.timetuple()), sebbene non tutti gli oggetti implementino il metodo timetuple().

Per oggetti di tipo time, i codici di formato per anno mese e giorno non dovrebbero venire usati, dato che oggetti time non hanno tali attributi. Se vengono usati ugualmente, per l'anno viene usato il valore 1900, mentre per il mese ed il giorno viene usato il valore 0.

Per oggetti di tipo date, i codici di formato per ore, minuti e secondi non dovrebbero venire usati, dato che oggetti date non hanno tali attributi. Se vengono usati ugualmente, viene usato il valore 0 per tutti loro.

Per un oggetto ``semplice'', i codici di formato %z e %Z vengono convertiti in stringhe vuote.

Per un oggetto ``complesso'':

%z
utcoffset() viene trasformato in una stringa di cinque caratteri nella forma +HHMM oppure -HHMM, dove HH è una stringa di due caratteri che esprime le ore di differenza oraria e MM è una stringa di due caratteri che esprime i minuti di differenza oraria. Per esempio, se utcoffset() restituisce timedelta(hours=-3, minutes=-30), allora %z viene sostituito con la stringa -0330.

%Z
Se tzname() restituisce None, %Z viene sostituito con una stringa vuota. Altrimenti, %Z viene sostituito dal valore di ritorno di tzname(), che deve essere una stringa.

L'insieme completo dei codici di formato varia a seconda della piattaforma, poiché Python chiama la funzione strftime() messa a disposizione dalla libreria C della piattaforma, e variazioni di piattaforma sono comuni. La documentazione del modulo Python time elenca i codici di formato richiesti dallo standard del linguaggio C (versione 1989), e questi funzionano su tutte le piattaforme con implementazione C standard. Notate che la versione del 1999 dello standard C ha aggiunto altri codici di formato.

Anche l'intervallo di anni per cui strftime() funziona correttamente varia a seconda della piattaforma. Ad ogni modo, gli anni precedenti il 1900 non possono venire usati su nessuna piattaforma.

Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.