In questa sezione vengono fornite informazioni sulla procedura per specificare il formato data/ora utilizzando una stringa di lettere di modello.
Quando si converte una data o un'ora in una stringa, è possibile applicare un modello di formato per indirizzare la conversione. Ciò si applica se si esegue la formattazione di una data o di un'ora in una stringa o se si esegue l'analisi di una stringa in una data o un'ora.
Durante la formattazione (ad esempio, una data/ora in una stringa) un modello o una serie di token viene sostituita dall'origine equivalente. Nella figura 1 viene fornita una rappresentazione della modalità di applicazione.
Quando una stringa viene analizzata (ad esempio, quando viene convertita in data/ora), il modello o la serie di token viene utilizzata per determinare la parte della stringa che rappresenterà le parti data/ora di destinazione. Nella figura 2 viene fornita una rappresentazione della modalità di applicazione.
Il modello di espressione viene definito con la modalità riportata di seguito:
.--------------.
| .- -. |
V V | |
>------+-symbol-+->
'-string-'
Nella tabella riportata di seguito sono elencati i caratteri consentiti in un modello per effettuare la formattazione o l'analisi delle stringhe in relazione a una data/ora.
Simbolo | Spiegazione | Presentazione | Esempi |
---|---|---|---|
a | indicatore am o pm | Testo | am di input, AM, pm, PM. AM o PM di output. |
d | giorno del mese (1-31) | Numero | 1, 20 |
dd | giorno del mese (01-31) | Numero | 01, 31 |
D | giorno dell'anno (1-366) | Numero | 3, 80, 100 |
DD | giorno dell'anno (01-366) | Numero | 03, 80, 366 |
DDD | giorno dell'anno (001-366) | Numero | 003 |
e | giorno della settimana (1-7) | Numero | 26 |
EEE | giorno della settimana | Testo | Mar |
EEEE | giorno della settimana | Testo | Martedì |
F | giorno settimanale del mese (1-5) | Numero | 2 (per il secondo mercoledì di luglio)3 |
G | Era | Testo | AC o DC |
h | ora in am o pm (1-12) | Numero | 6 |
hh | ora in am o pm (01-12) | Numero | 06 |
H | ora del giorno nel formato di 24 ore (0-23) | Numero | 77 |
HH | ora del giorno nel formato di 24 ore (00-23) | Numero | 077 |
I | ISO8601 data/ora (fino a yyyy-MM-dd'T'HH:mm:ss. SSSZZZ) | Testo | 2004-10-07T12:06:56.568+01:00 5 |
IU | ISO8601 data/ora (come sopra, ma ZZZ con output "Z" se il fuso orario è +00:00) | Testo | 2004-10-07T12:06:56.568+01:00, 2003-12 -15T15:42:12.000Z 5 |
k | ora del giorno nel formato di 24 ore (1-24) | Numero | 87 |
k | ora del giorno nel formato di 24 ore (01-24) | Numero | 087 |
K | ora in am o pm (0-11) | Numero | 9 |
KK | ora in am o pm (00-11) | Numero | 09 |
m | minuto | Numero | 4 |
mm | minuto | Numero | 04 |
M | mese in formato numerico | Numero | 5, 12 |
MM | mese in formato numerico | Numero | 05, 12 |
MMM | mese in formato nome | Testo | Gen, feb |
MMMM | mese in formato nome | Testo | Gennaio, febbraio |
s | secondi | Numero | 5 |
ss | secondi | Numero | 05 |
S | decimi di secondo | Numero | 78 |
SS | centesimi di secondo | Numero | 708 |
SSS | millisecondi | Numero | 7008 |
SSSS | 1/10.000 di secondo | Numero | 70008 |
SSSSS | 1/100.000 di secondo | Numero | 700008 |
SSSSSS | 1/1.000.000 di secondo | Numero | 7000008 |
T | ISO8601 Ora (fino a HH:mm:ss.SSSZZZ) | Testo | 12:06:56.568+01:005 |
TU | ISO8601 Ora (come sopra, ma un fuso orario di +00:00 è sostituito da "Z") | Testo | 12:06:56.568+01:00, 15:42:12.000Z5 |
w | settimana dell'anno | Numero | 7, 532 |
ww | settimana dell'anno | Numero | 07, 532 |
W | settimana del mese | Numero | 24 |
yy | anno | Numero | 961 |
aaaa | anno | Numero | 19961 |
YY | anno: utilizzare solo con la settimana dell'anno | Numero | 962 |
YYYY | anno: utilizzare solo con la settimana dell'anno | Numero | 19962 |
zzz | fuso orario (abbreviazione) | Testo | gmt |
zzzz | fuso orario (nome completo) | Testo | Ora di Greenwich |
Z | fuso orario (+/-n) | Testo | +3 |
ZZ | fuso orario (+/-nn) | Testo | +03 |
ZZZ | fuso orario (+/-nn:nn) | Testo | +03:00 |
ZZZU | fuso orario (come per ZZZ, ma "+00:00" è sostituito da "Z") | Testo | +03:00, Z |
ZZZZ | fuso orario (GMT+/-nn:nn) | Testo | GMT+03:00 |
ZZZZZ | fuso orario (come per ZZZ, ma senza virgola) (+/-nnnn) | Testo | +0300 |
' | testo in sequenza Escape | 'Testo utente' | |
'' | (due apici) apice nel testo in sequenza Escape | 'o''clock' |
La presentazione dell'oggetto data/ora dipende dai simboli specificati come riportato di seguito:
Se si utilizza il simbolo y, non vengono eseguite le modifiche ed è possibile che si verifichino risultati non previsti per le date relative agli ultimi giorni dell'anno. Ad esempio, se viene effettuata la formattazione della stringa 2002 01 lunedì:
Utilizzare Y solo insieme al valore w. Se si specifica Y senza w, l'anno viene ignorato. Ad esempio, se si specifica YYYY-MM-dd per effettuare la formattazione di 1996-03-01, il risultato è 2005-03-01 poiché l'input dell'anno viene ignorato e viene presunto l'utilizzo dell'anno corrente.
Se i valori data/ora sono compatibili con lo standard ISO8601:2000 relativo alle rappresentazione delle date e dell'ora, valutare la possibilità di utilizzare i simboli di formattazione I e T. Questi corrispondono a una serie secondaria dello standard ISO8601 e in modo specifico a quanto riportato di seguito.
E' necessario utilizzare questi simboli da soli.
Nell'output verrà applicato il seguente formato in base al tipo di dati logico.
Tipo dati MRM logico | Tipo dati ESQL logico | Formato output |
---|---|---|
xsd:dateTime | TIMESTAMP o GMTTIMESTAMP | aaaa-MM-dd'T'HH:mm:ss.SSSZZZ |
xsd:date | DATE | aaaa-MM-dd |
xsd:gYear | INTERVAL | aaaa |
xsd:gYearMonth | INTERVAL | aaaa-MM |
xsd:gMonth | INTERVAL | --MM |
xsd:gmonthDay | INTERVAL | --MM-dd |
xsd:gDay | INTERVAL | ---dd |
xsd:time | TIME / GMTTIME | 'T'HH:mm:ss.SSSZZZ |
Un elemento o un attributo di tipo logico xsd:dateTime o xsd:time in cui è contenuto un valore data/ora sotto forma di stringa è in grado di specificare il valore UTC (Coordinated Universal Time) utilizzando il carattere Z o il fuso orario +00:00. Nell'input nel programma di analisi MRM è memorizzato il formato UTC di tali elementi e attributi. Nell'output è possibile specificare se è necessario visualizzare Z o +00:00 utilizzando la proprietà del formato data/ora dell'elemento o dell'attributo. In alternativa, è possibile mantenere il formato UTC di input selezionando la proprietà della serie di messaggi Utilizza il formato UTC di immissione nell'emissione. Se tale proprietà è selezionata, nel messaggio di output verrà mantenuto il formato UTC, che sostituisce il valore specificato dalla proprietà del formato data/ora.
Nella tabella riportata di seguito sono riportati alcuni esempi dei formati data/ora.
Modello di formato | Risultato |
---|---|
"aaaa.MM.dd'at'HH:mm:ss ZZZ" | 10/07/1996 alle ore 15:08:56 -05:00 |
EEE, MMM d, "yy" | Mer, 10 luglio '96 |
"h:mm a" | 20:08 |
"hh 'o''clock' a, ZZZZ" | 09:00, GMT+09:00 |
"K:mm a, ZZZ" | 9:34, -05:00 |
"aaaa.MMMMM.dd hh:mm aaa" | 10.luglio.1996 12:08 |