Token di formato della data
Ci sono due famiglie ampiamente utilizzate di stringhe di formato data e si sovrappongono abbastanza da essere pericolose. strftime — da C, ed ereditato da Python, Ruby, PHP e GNU date — usa token percentuale come %Y. Unicode LDML, utilizzato da ICU, Java, moment e dayjs, usa lettere ripetute come yyyy. In LDML, MM è un mese e mm è un minuto; ottenere quella coppia al contrario è il bug classico.
Ogni riga sottostante è resa per lo stesso istante: lunedì 9 marzo 2026, 14:05:07 UTC. Quella data è scelta in modo che nulla si nasconda — un giorno e un mese a una sola cifra espongono il padding con zeri, l'ora pomeridiana fa differire visibilmente gli orologi 12 e 24 ore, e il giorno della settimana è inequivocabile.
Una colonna equivalente vuota significa che l'altro dialetto non ha un singolo token per esso e devi comporre il valore tu stesso. La suite di test renderizza i campi del calendario con le funzioni di data della piattaforma stessa e li confronta con questa tabella, quindi gli esempi non possono allontanarsi dalla realtà.
Anno
4| strftime | LDML | Campo | Renderizza come |
|---|---|---|---|
| %Y | yyyy | Anno a quattro cifre | 2026 |
| %y | yy | Anno a due cifreAmbiguo per costruzione. Evitalo in qualsiasi cosa memorizzata. | 26 |
| %C | Secolo — l'anno diviso per 100 | 20 | |
| %G | YYYY | Anno di numerazione della settimana ISODifferisce dall'anno civile intorno a Capodanno. Usa solo con il numero della settimana ISO. | 2026 |
Mese
4In LDML, MM è il mese e mm è il minuto.
| strftime | LDML | Campo | Renderizza come |
|---|---|---|---|
| %m | MM | Mese, zero-padded | 03 |
| %-m | M | Mese, nessun riempimento | 3 |
| %b | MMM | Nome del mese abbreviato | Mar |
| %B | MMMM | Nome completo del mese | March |
Giorno e giorno della settimana
8In LDML, dd è giorno del mese e DDD è giorno dell'anno.
| strftime | LDML | Campo | Renderizza come |
|---|---|---|---|
| %d | dd | Giorno del mese, zero-padded | 09 |
| %-d | d | Giorno del mese, nessun riempimento | 9 |
| %e | Giorno del mese, riempito con spazi | 9 | |
| %j | DDD | Giorno dell'anno, 001–366 | 068 |
| %a | EEE | Nome del giorno della settimana abbreviato | Mon |
| %A | EEEE | Nome del giorno della settimana completo | Monday |
| %u | Giorno della settimana come numero, lunedì è 1%w numera gli stessi giorni da domenica come 0. | 1 | |
| %V | ww | Numero della settimana ISO, settimane che iniziano lunedì | 11 |
Tempo
8| strftime | LDML | Campo | Renderizza come |
|---|---|---|---|
| %H | HH | Ora sull'orologio 24 ore | 14 |
| %-H | H | Ora, nessun riempimento | 14 |
| %I | hh | Ora sull'orologio 12 ore | 02 |
| %M | mm | Minuto | 05 |
| %S | ss | Secondo | 07 |
| %3N | SSS | Millisecondi | 000 |
| %p | a | AM o PM | PM |
| %s | Timestamp Unix — secondi dal 1970-01-01 UTC | 1773065107 |
Zona del tempo
3Un offset è un numero; un nome di zona è una regola. Solo il nome sopravvive a un cambiamento dell'ora legale.
| strftime | LDML | Campo | Renderizza come |
|---|---|---|---|
| %z | ZZ | Offset UTC, nessun due punti | +0000 |
| %:z | XXX | Offset UTC con un due punti, come vuole ISO 8601 | +00:00 |
| %Z | zzz | Abbreviazione della zona del tempoLe abbreviazioni non sono uniche — CST è almeno tre zone diverse. | UTC |
Combinazioni comuni
7Costruito dai token sopra — nessuna libreria necessaria.
| strftime | LDML | Campo | Renderizza come |
|---|---|---|---|
| %F | yyyy-MM-dd | Data ISO | 2026-03-09 |
| %T | HH:mm:ss | Ora 24 ore | 14:05:07 |
| %FT%T%:z | yyyy-MM-dd'T'HH:mm:ssXXX | Timestamp ISO 8601 completoIl formato da memorizzare. Si ordina come testo, inequivocabile sull'offset. | 2026-03-09T14:05:07+00:00 |
| %a, %d %b %Y %T %z | EEE, dd MMM yyyy HH:mm:ss ZZ | RFC 2822 — intestazioni di posta e HTTP più vecchi | Mon, 09 Mar 2026 14:05:07 +0000 |
| %m/%d/%Y | MM/dd/yyyy | Convenzione statunitense, mese prima | 03/09/2026 |
| %d.%m.%Y | dd.MM.yyyy | Convenzione europea, giorno prima | 09.03.2026 |
| %% | '' | Un segno di percentuale letterale | % |