Esta seção fornece informações sobre como especificar o formato dateTime utilizando uma cadeia de letras padrão.
Quando estiver convertendo uma data ou hora em uma cadeia, poderá ser aplicado um padrão de formato que direcione a conversão. Isto se aplicaria se você estivesse formatando de uma data ou hora para uma cadeia ou analisando uma cadeia para uma data ou hora.
Durante a formatação (por exemplo, um dateTime para uma cadeia) um padrão ou um conjunto de tokens é substituído por sua origem equivalente. A Figura 1 fornece uma representação de como isto é aplicado.
Quando uma cadeia é analisada (por exemplo, convertendo-a em um dateTime), o padrão ou conjunto de tokens é utilizado para determinar qual parte do dateTime de destino é representada por qual parte da cadeia. A Figura 2 fornece uma representação de como isto é aplicado.
O padrão da expressão é definido por:
.--------------.
| .- -. |
V V | |
>------+-symbol-+->
'-string-'
A tabela a seguir lista os caracteres permitidos que podem ser utilizados em um padrão para formatar ou analisar cadeias em relação a um dateTime.
Símbolo | Significado | Apresentação | Exemplos |
---|---|---|---|
a | marcador am ou pm | Texto | Entrada am, AM, pm, PM. Saída AM ou PM |
d | dia do mês (1-31) | Número | 1, 20 |
dd | dia do mês (01-31) | Número | 01, 31 |
D | dia do ano (1-366) | Número | 3, 80, 100 |
DD | dia do ano (01-366) | Número | 03, 80, 366 |
DDD | dia do ano (001-366) | Número | 003 |
e | dia na semana (1-7) | Número | 26 |
EEE | dia na semana | Texto | Ter |
EEEE | dia na semana | Texto | Terça-feira |
F | dia da semana no mês (1-5) | Número | 2 (para a segunda quarta-feita de julho)3 |
G | Era | Texto | BC ou AD |
h | hora em am ou pm (1-12) | Número | 6 |
hh | hora em am ou pm (01-12) | Número | 06 |
I | hora do dia em formato de 24 horas (0-23) | Número | 77 |
HH | hora do dia em formato de 24 horas (00-23) | Número | 077 |
I | Data/Hora ISO8601 (até yyyy-MM-dd'T'HH:mm:ss. SSSZZZ) | text | 2004-10-07T12:06:56.568+01:005 |
IU | Data/Hora ISO8601 (conforme acima, mas ZZZ com a saída "Z" se o fuso horário for +00:00) | text | 2004-10-07T12:06:56.568+01:00, 2003-12 -15T15:42:12.000Z 5 |
k | hora do dia em formato de 24 horas (1-24) | Número | 87 |
k | hora do dia em formato de 24 horas (01-24) | Número | 087 |
K | hora em am ou pm (0-11) | Número | 9 |
KK | hora em am ou pm (00-11) | Número | 09 |
m | minute | Número | 4 |
mm | minute | Número | 04 |
M | mês numérico | Número | 5, 12 |
MM | mês numérico | Número | 05, 12 |
MMM | mês denominado | Texto | Jan, Fev |
MMMM | mês denominado | Texto | Janeiro, Fevereiro |
s | segundos | Número | 5 |
ss | segundos | Número | 05 |
S | décimo de segundo | Número | 78 |
SS | centésimo de segundo | Número | 708 |
SSS | milissegundo | Número | 7008 |
SSSS | 1/10.000 de segundos | Número | 70008 |
SSSSS | 1/100.000 de segundos | Número | 700008 |
SSSSSS | 1/1.000.000 de segundos | Número | 7000008 |
E | Hora ISO8601 (até HH:mm:ss.SSSZZZ) | text | 12:06:56.568+01:005 |
TU | Hora ISO8601 (conforme acima, mas um fuso horário de +00:00 é substituído por 'Z') | text | 12:06:56.568+01:00, 15:42:12.000Z5 |
w | semana no ano | Número | 7, 532 |
ww | semana no ano | Número | 07, 532 |
W | semana no mês | Número | 24 |
yy | ano | Número | 961 |
yyyy | ano | Número | 19961 |
YY | ano: utilizar apenas com semana no ano | Número | 962 |
YYYY | ano: utilizar apenas com semana no ano | Número | 19962 |
zzz | fuso horário (nome abreviado) | Texto | gmt |
zzzz | fuso horário (nome completo) | Texto | Hora de Greenwich |
Z | fuso horário (+/-n) | Texto | +3 |
ZZ | fuso horário (+/-nn) | Texto | +03 |
ZZZ | fuso horário (+/-nn:nn) | Texto | +03:00 |
ZZZU | fuso horário (como ZZZ, "+00:00" é substituído por "Z") | Texto | +03:00, Z |
ZZZZ | fuso horário (GMT+/-nn:nn) | Texto | GMT+03:00 |
ZZZZZ | fuso horário (como ZZZ, mas sem dois pontos) (+/-nnnn) | Texto | +0300 |
' | escape para texto | 'Texto do usuário' | |
'' | (duas aspas simples) aspas simples no texto de escape | 'o''clock' |
A apresentação do objeto dateTime depende de quais símbolos são especificados da seguinte forma:
Se você utilizar o símbolo y, o ajuste não será feito e podem ocorrer resultados imprevisíveis para datas próximas do final do ano.Por exemplo, se a cadeia Segunda-feira 01 2002 estiver formatada:
Y deve ser utilizado apenas junto com w. Se você especificar Y sem w, o ano será ignorado. Por exemplo, se você especificar YYYY-MM-dd para o formato 1996-03-01, o resultado será 2005-03-01, porque a entrada do ano será ignorada e o ano atual será assumido.
Se os valores de dateTime concordarem com o Padrão de 'Representação de Datas e Horas' ISO8601:2000, você deve considerar se é possível utilizar os símbolos de formatação I e T. Eles correspondem a um subconjunto do padrão ISO8601, especificamente:
Esses símbolos devem ser utilizados apenas sozinhos.
Na saída, o seguinte formato será aplicado, dependendo no tipo de dados lógico:
Tipo de Dados Lógico MRM | Tipo de Dados Lógico ESQL | Formato de Saída |
---|---|---|
xsd:dateTime | TIMESTAMP ou GMTTIMESTAMP | yyyy-MM-dd'T'HH:mm:ss.SSSZZZ |
xsd:date | DATE | yyyy-MM-dd |
xsd:gYear | INTERVAL | yyyy |
xsd:gYearMonth | INTERVAL | yyyy-MM |
xsd:gMonth | INTERVAL | --MM |
xsd:gmonthDay | INTERVAL | --MM-dd |
xsd:gDay | INTERVAL | ---dd |
xsd:time | TIME / GMTTIME | 'T'HH:mm:ss.SSSZZZ |
Um elemento ou atributo de tipo lógico xsd:dateTime ou xsd:time que contém um dateTime como uma cadeia pode especificar UTC (Consolidated Universal Time) utilizando o caractere Z ou o fuso horário +00:00. Na entrada, o analisador MRM lembra o formato UTC de tais elementos e atributos. Na saída, você pode especificar se Z ou +00:00 deve aparecer, utilizando a propriedade de formato dateTime do elemento ou atributo. Como alternativa, você pode preservar o formato UTC de entrada, verificando a propriedade do conjunto de mensagens Utilizar Formato de Entrada UTC na Saída. Se essa propriedade for verificada, o formato UTC será preservado na mensagem de saída e substituirá o deduzido pela propriedade de formato dateTime.
A tabela a seguir mostra alguns exemplos de formatos dateTime:
Padrão de formato | Resultado |
---|---|
"yyyy.MM.dd'at'HH:mm:ss ZZZ" | 1996.07.10 às 15:08:56 -05:00 |
EEE, MMM d, "yy" | Qua, 10 julho, '96 |
"h:mm a" | 8:08 h |
"hh 'o''clock' a, ZZZZ" | 09:00 h, GMT+09:00 |
"K:mm a, ZZZ" | 9:34 AM, -05:00 |
"yyyy.MMMMM.dd hh:mm aaa" | 1996.julho.10 12:08 h |