DateTime como Dados de Cadeia

Você pode utilizar uma cadeia de letras de padrão para especificar o formato de data/hora.

Ao converter uma data ou hora para uma cadeia, deve-se aplicar um padrão de formato que direcione a conversão. Aplique o padrão de formato para converter uma data ou hora para uma cadeia ou para analisar uma cadeia para uma data ou hora.

Durante a conversão (por exemplo, de um dateTime para uma cadeia), um padrão ou um conjunto de tokens é substituído pela origem equivalente. O diagrama a seguir mostra como um padrão é utilizado para formatar uma origem dateTime para produzir uma saída de cadeia de caracteres.

Este diagrama mostra a cadeia de saída que resulta de uma origem de data/hora e de um padrão de formato.

Quando uma cadeia é analisada (por exemplo, ao converter a cadeia para uma data/hora), o padrão ou conjunto de tokens é utilizado para determinar qual parte da data/hora de destino é representada por qual parte da cadeia. O diagrama a seguir mostra como isso é feito.

Este diagrama mostra a saída de data/hora que resulta de uma origem de dados de cadeia e um padrão de formato.

Sintaxe

O padrão da expressão é definido por:

Em que:
symbol
é um caractere no conjunto adDeEFGhHIkKmMsSTUwWyYzZ.
string
é uma seqüência de caracteres entre aspas simples. Se uma aspa única for necessária na cadeia, utilize duas aspas únicas (").

Caracteres para Formatar um dateTime como uma Cadeia

A tabela a seguir lista os caracteres que podem ser utilizados em um padrão para formatar ou analisar cadeias em relação a um dateTime. A tabela é seguida por algumas notas que explicam mais sobre alguns dos exemplos na tabela.

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)1 Número 2
EEE dia na semana1 Texto Ter
EEEE dia na semana1 Texto Terça-feira
F dia da semana no mês (1-5)2 Número 2
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 no formato de 24 horas (0-23)3 Número 7
HH hora do dia no formato de 24 horas (00-23)3 Número 07
I Data/Hora ISO8601 (até yyyy-MM-dd'T'HH:mm:ss. SSSZZZ)4 Texto 2006-10-07T12:06:56.568+01:00
IU Data/Hora ISO8601 (semelhante a I, mas ZZZ com saída "Z" se o fuso horário for +00:00)4 Texto 2006-10-07T12:06:56.568+01:00, 2003-12 -15T15:42:12.000Z
k hora do dia no formato de 24 horas (1-24)3 Número 8
k hora do dia no formato de 24 horas (01-24)3 Número 08
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 segundo5 Número 7
SS centésimo de segundo5 Número 70
SSS milissegundo5 Número 700
SSSS 0,0001 segundo5 Número 7000
SSSSS 0,00001 segundo5 Número 70000
SSSSSS 0,000001 segundo5 Número 700000
E Hora ISO8601 (até HH:mm:ss.SSSZZZ)4 Texto 12:06:56.568+01:00
TU Hora ISO8601 (semelhante a T, mas um fuso horário igual a +00:00 é substituído por 'Z')4 Texto 12:06:56.568+01:00, 15:42:12.000Z
w semana no ano6 Número 7, 53
ww semana no ano6 Número 07, 53
W semana no mês7 Número 2
yy ano8 Número 06
yyyy ano8 Número 2006
YY ano: utilizar apenas com semana no ano6 Número 06
YYYY ano: utilizar apenas com semana no ano6 Número 2006
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 únicas) aspa única dentro do texto com escape   'o"clock'

A apresentação do objeto dateTime depende dos símbolos especificados.

Notas: As notas a seguir se aplicam à tabela precedente.
  1. O campo de dia da semana é o deslocamento numérico em uma semana e varia conforme o valor da propriedade Primeiro Dia da Semana do conjunto de mensagens físicas. Por exemplo, o terceiro dia da semana será quarta-feira se a propriedade Primeiro Dia da Semana do conjunto de mensagens físicas estiver configurada como segunda-feira.
  2. 12 de Julho de 2006 é a segunda Quarta-feira em Julho e pode ser expresso como 2006 Julho Quarta-feira 2 utilizando a cadeia de formatações aaaa MMMM EEEE F. Observe que este formato não representa a Quarta-feira na semana 2 de Julho de 2006, que é 5 de Julho de 2006; a cadeia de formatações para isto é yyyy MMMM EEEE W.
  3. Campos de 24 horas poderiam resultar em um horário ambíguo, se especificados com um campo am/pm conflitante.
  4. Consulte o ISO8601, tokens DateTime I e T.
  5. Os segundos fracionais são representados pela letra maiúscula S. O comprimento deve corresponder implicitamente ao número de símbolos de formato na entrada. A cadeia de formatações ss SSS ou ss.SSS, por exemplo, representa segundos e milissegundos. Entretanto, a cadeia de formatações ss.sss representa um campo repetido (de segundos); o valor após o ponto (.) é obtido como um campo de segundos, não como segundos fracionais. A saída é truncada para o comprimento especificado.
  6. O início de um ano está normalmente na metade de uma semana. Se o número de dias nessa semana for menor que o valor especificado pela propriedade de configuração de mensagem física Dias na Primeira Semana do Ano, a semana será considerada como sendo a última semana do ano anterior; neste caso, a semana 1 começa alguns dias no novo ano. Caso contrário, a semana é considerada como sendo a primeira semana do novo ano; neste caso, a semana 1 começa alguns dias antes do novo ano. Por exemplo, segunda-feira da semana 1 de 2004 (2004 01 segunda-feira, em que Dias da Primeira Semana do Ano = 4 e Primeiro Dia da Semana = segunda-feira), utilizando a cadeia de formatações YYYY ww EEEE é na verdade 29 de dezembro de 2003. Se você utilizar Y, o dia da semana (E) e a semana no ano (w) serão ajustados, se necessário, para indicar que a data cai no ano anterior.

    Se você utilizar o símbolo y minúsculo, o ajuste não será feito e poderão ocorrer resultados imprevisíveis para datas próximas ao final do ano. Por exemplo, se a cadeia Segunda-feira 01 2002 estiver formatada:

    • A segunda-feira da semana 1 de 2002, utilizando a cadeia de formatações YYYY ww EEEE é interpretada corretamente como 31 de dezembro de 2001
    • A segunda-feira da semana 1 de 2002, utilizando a cadeia de formatações yyyy ww EEEE é interpretada incorretamente como 30 de dezembro de 2002

    Utilize Y somente 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á 2006-03-01, porque a entrada do ano será ignorada e o ano atual será assumido.

  7. A primeira e a última semanas em um mês podem incluir dias de meses próximos. Por exemplo, segunda-feira, 31 de julho de 2006 pode ser expresso como Segunda-feira na semana 1 de agosto de 2006, que é Segunda-feira, 1 08 2006 utilizando a cadeia de formatações yyyy MM W EEEE.
  8. O ano é tratado de forma especial:
    • Na saída, se a contagem de y for 2, o ano será truncado para 2 dígitos. Por exemplo, se yyyy produzir 2006, yy produzirá 06.
    • Na entrada, para anos de 2 dígitos, a propriedade Início de século para anos de 2 dígitos do conjunto de mensagens físicas é utilizada para determinar o século. Por exemplo, se Início de século para anos de 2 dígitos for configurado para 53, o ano 97 é 1997, o ano 52 é 2052 e o ano 53 é 1953.

ISO8601, tokens DateTime I e T

Se os valores de dateTime estiverem em conformidade com o padrão ISO8601:2000 de 'Representação de Datas e Horas', considere a utilização dos símbolos de formatação I e T, que correspondem ao subconjunto do padrão ISO8601 a seguir.

Utilize os símbolos de formatação I e T apenas sozinhos:

A tabela a seguir mostra como o formulário de saída está relacionado ao tipo de dados lógicos.

Tipo de dados de modelo lógico tipo de dados 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
Nota:
  • Na entrada, I e T aceitam '+00:00' e 'Z' para indicar uma diferença de hora zero de UTC (Coordinated Universal Time), mas na saída eles sempre geram '+00:00'. Se você desejar que 'Z' seja sempre gerado na saída, então utilize os símbolos de formatação IU ou TU.
  • ZZZ sempre gera a saída '+00:00' para indicar uma diferença de tempo zero do UTC (Coordinated Universal Time). Se você desejar que 'Z' seja sempre gerado na saída, então utilize ZZZU.

Utilizando o Formato UTC de Entrada na Saída

Um elemento ou atributo de tipo lógico xsd:dateTime ou xsd:time que contém uma data/hora como uma cadeia pode especificar UTC (Coordinated Universal Time) utilizando o símbolo 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 é exibido utilizando a propriedade Formato de Data/Hora Padrão do elemento ou atributo. Alternativamente, você pode preservar o formato UTC de entrada selecionando a propriedade do conjunto de mensagens Utilizar formato UTC de entrada na saída. Se esta propriedade for selecionada, o formato de UTC será preservado na mensagem de saída e substituirá o formato que é inferido pela propriedade de formato de data/hora.

Exemplos

A tabela a seguir mostra alguns exemplos de formatos dateTime.

Padrão de formato Resultado
"yyyy.MM.dd 'at' HH:mm:ss ZZZ" 2006.07.10 às 15:08:56 -05:00
"EEE, MMM d, "yy" Qua, 10 julho, '06
"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
Conceitos relacionados
Modelagem de Mensagens
O Modelo de Mensagem
Tarefas relacionadas
Desenvolvendo Modelos de Mensagens
Trabalhando com um Arquivo de Definição de Mensagem
Trabalhando com Objetos de Modelo de Mensagem
Referências relacionadas
Informações de Referência do Modelo de Mensagens
Propriedades do Objeto de Modelo de Mensagem
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
Última atualização : 2009-02-13 16:12:05

ad09291_