ISO 8601 - ISO 8601

Data e hora atuais expressas de acordo com ISO 8601 [ atualização ]
Encontro 2021-10-18
Data e hora em UTC 2021-10-18T09: 41: 33 + 00: 00
2021-10-18T09: 41: 33Z
20211018T094133Z
Semana 2021-W42
Semana com dia da semana 2021-W42-1
Data sem ano - 10-18
Data ordinal 2021-291

ISO 8601 é um padrão internacional que cobre o intercâmbio e a comunicação mundial de dados relacionados a data e hora . É mantido pela Organização Internacional de Padronização (ISO) com sede em Genebra e foi publicado pela primeira vez em 1988, com atualizações em 1991, 2000, 2004 e 2019. O padrão visa fornecer um método bem definido e inequívoco de representação de datas do calendário e horários nas comunicações mundiais, especialmente para evitar a interpretação incorreta de datas e horas numéricas quando esses dados são transferidos entre países com convenções diferentes para escrever datas e horas numéricas.

Em geral, a ISO 8601 se aplica a estas representações e formatos: datas, no calendário gregoriano (incluindo o calendário gregoriano proléptico ); horários, com base no sistema de marcação de tempo de 24 horas , com deslocamento UTC opcional ; intervalos de tempo ; e suas combinações. A norma não atribui significado específico a nenhum elemento das datas / horas representadas: o significado de qualquer elemento depende do contexto de seu uso. As datas e horas representadas não podem usar palavras que não tenham um significado numérico especificado no padrão (excluindo assim nomes de anos no calendário chinês ), ou que não usem caracteres de computador (exclui imagens ou sons).

Em representações que aderem ao padrão de intercâmbio ISO 8601 , datas e horas são organizadas de forma que o maior termo temporal (normalmente um ano) seja colocado à esquerda e cada termo sucessivamente menor seja colocado à direita do termo anterior. As representações devem ser escritas em uma combinação de algarismos arábicos e os caracteres específicos do computador (como "-", ":", "T", "W", "Z") aos quais são atribuídos significados específicos dentro do padrão; isto é, descritores comuns de datas (ou partes de datas) como "janeiro", "quinta-feira" ou "Dia de Ano Novo" não são permitidos nas representações de intercâmbio dentro do padrão.

História

A primeira edição da norma ISO 8601 foi publicada como ISO 8601: 1988 em 1988. Ela unificou e substituiu uma série de normas ISO mais antigas em vários aspectos da notação de data e hora: ISO 2014 , ISO 2015 , ISO 2711 , ISO 3307 e ISO 4031 . Foi substituído por uma segunda edição ISO 8601: 2000 em 2000, por uma terceira edição ISO 8601: 2004 publicada em 1 de dezembro de 2004 e retirado e revisado por ISO 8601-1: 2019 e ISO 8601-2: 2019 em 25 de fevereiro 2019. A ISO 8601 foi preparada e está sob a responsabilidade direta do Comitê Técnico da ISO TC 154.

ISO 2014, embora substituído, é o padrão que originalmente introduzido a notação data tudo-em numérico mais-a-menos significativo ordem [AAAA] - [MM] - [DD] . O sistema de numeração de semanas ISO foi introduzido na ISO 2015, e a identificação de dias por datas ordinais foi originalmente definida na ISO 2711.

Emitida em fevereiro de 2019, a quarta revisão do padrão ISO 8601-1: 2019 representa o conteúdo ligeiramente atualizado do padrão ISO 8601: 2004 anterior, enquanto o novo ISO 8601-2: 2019 define várias extensões, como incertezas ou partes do # Formato de data / hora estendido (EDTF).

História das edições publicadas
Nome Descrição
ISO 8601: 1988 Elementos de dados e formatos de intercâmbio - Intercâmbio de informações - Representação de datas e horas
ISO 8601: 1988 / COR 1: 1991 Elementos de dados e formatos de intercâmbio - Intercâmbio de informações - Representação de datas e horas - Correção técnica 1
ISO 8601: 2000 Elementos de dados e formatos de intercâmbio - Intercâmbio de informações - Representação de datas e horas
ISO 8601: 2004 Elementos de dados e formatos de intercâmbio - Intercâmbio de informações - Representação de datas e horas
ISO 8601-1: 2019 Data e hora - Representações para intercâmbio de informações - Parte 1: Regras básicas
ISO 8601-2: 2019 Data e hora - Representações para intercâmbio de informações - Parte 2: Extensões

Princípios gerais

  • Os valores de data e hora são ordenados da maior para a menor unidade de tempo: ano, mês (ou semana), dia, hora, minuto, segundo e fração de segundo. A ordem lexicográfica da representação corresponde, portanto, à ordem cronológica, exceto para representações de data envolvendo anos negativos ou deslocamento de tempo. Isso permite que as datas sejam classificadas naturalmente por, por exemplo, sistemas de arquivos.
  • Cada valor de data e hora tem um número fixo de dígitos que devem ser preenchidos com zeros à esquerda .
  • As representações podem ser feitas em um de dois formatos - um formato básico com um número mínimo de separadores ou um formato estendido com separadores adicionados para melhorar a legibilidade humana. O padrão observa que "O formato básico deve ser evitado em texto simples ." O separador usado entre os valores de data (ano, mês, semana e dia) é o hífen , enquanto os dois pontos são usados ​​como separador entre os valores de tempo (horas, minutos e segundos). Por exemplo, o 6º dia do 1º mês do ano de 2009 pode ser escrito como "2009-01-06" no formato estendido ou simplesmente como "20090106" no formato básico sem ambigüidade.
  • Para precisão reduzida, qualquer número de valores pode ser eliminado de qualquer uma das representações de data e hora, mas na ordem do menos para o mais significativo. Por exemplo, "2004-05" é uma data ISO 8601 válida, que indica maio (o quinto mês) de 2004. Este formato nunca representará o quinto dia de um mês não especificado em 2004, nem representará um intervalo de tempo estendendo-se de 2004 em 2005.
  • Se necessário para uma aplicação específica, o padrão suporta a adição de uma fração decimal ao menor valor de tempo na representação.

datas

Outubro de 2021
Semana seg ter qua qui Sex Sentado sol
W39 27 28 29 30 01 02 03
W40 04 05 06 07 08 09 10
W41 11 12 13 14 15 16 17
W42 18 19 20 21 22 23 24
W43 25 26 27 28 29 30 31

O padrão usa o calendário gregoriano , que "serve como um padrão internacional para uso civil".

A ISO 8601: 2004 fixa uma data de referência no calendário gregoriano de 20 de maio de 1875 como a data em que a Convenção do Metro ( Convenção do Medidor ) foi assinada em Paris (a data de referência explícita foi removida na ISO 8601-1: 2019). No entanto, as datas do calendário ISO antes da convenção ainda são compatíveis com o calendário gregoriano desde a introdução oficial do calendário gregoriano em 15 de outubro de 1582.

Datas anteriores, no calendário gregoriano proléptico , podem ser usadas por acordo mútuo dos parceiros que trocam informações. O padrão afirma que todas as datas devem ser consecutivas, portanto, o uso do calendário Juliano seria contrário ao padrão (porque na data de transição, as datas não seriam consecutivas).

Anos

AAAA
± Y YYYY

ISO 8601 prescreve, no mínimo, um ano de quatro dígitos [AAAA] para evitar o problema do ano 2000 . Portanto, representa os anos de 0000 a 9999, sendo o ano 0000 igual a 1 AC e todos os outros DC . No entanto, anos anteriores a 1583 não são permitidos automaticamente pela norma. Em vez disso, "valores na faixa de [0000] a [1582] devem ser usados ​​apenas por acordo mútuo dos parceiros no intercâmbio de informações."

Para representar anos antes de 0000 ou após 9999 , a norma também permite a expansão da representação de anos, mas apenas por acordo prévio entre o remetente e o destinatário. Uma representação de ano expandida [± Y YYYY] deve ter um número acordado de dígitos extras de ano além do mínimo de quatro dígitos, e deve ser prefixada com um sinal + ou - em vez do AD / BC mais comum (ou CE / Notação BCE ); pela convenção, 1 BC é rotulado como +0000 , 2 BC é rotulado como −0001 e assim por diante.

Datas do calendário

AAAA-MM-DD ou AAAAMMDD
AAAA-MM ( mas não AAAAMM)
Permitido apenas na versão substituída de 2000:
- MM-DD ou --MMDD

As representações de datas do calendário estão no formato mostrado na caixa ao lado. [AAAA] indica um ano de quatro dígitos, 0000 a 9999. [MM] indica um mês de dois dígitos do ano, 01 a 12. [DD] indica um dia de dois dígitos desse mês, 01 a 31. Por exemplo , "5 de abril de 1981" pode ser representado como "1981-04-05" no formato estendido ou "19810405" no formato básico .

O padrão também permite que as datas do calendário sejam escritas com precisão reduzida. Por exemplo, pode-se escrever "1981-04" para significar "abril de 1981". A versão de 2000 permitiu escrever "--04-05" para significar "5 de abril", mas a versão de 2004 não permite omitir o ano quando um mês está presente. Pode-se simplesmente escrever "1981" para se referir a esse ano, "198" para se referir à década de 1980 a 1989 inclusive, ou "19" para se referir ao século de 1900 a 1999 inclusive. Embora o padrão permita os formatos "AAAA-MM-DD" e AAAAMMDD para representações completas de datas do calendário, se o dia [DD] for omitido, apenas o formato AAAA-MM será permitido. Ao não permitir datas no formato AAAAM, o padrão evita confusão com a representação truncada AAMMDD (ainda usada com frequência).

Datas da semana

YYYY-Www ou YYYYww
AAAA-Www-D ou YYYYWwwD

As representações da data da semana estão nos formatos mostrados na caixa ao lado. [YYYY] indica o ano de numeração da semana ISO, que é ligeiramente diferente do ano do calendário gregoriano tradicional (veja abaixo). [Www] é o número da semana prefixado pela letra W , de W01 a W53. [D] é o número do dia da semana , de 1 a 7, começando com segunda-feira e terminando com domingo.

Existem várias descrições mutuamente equivalentes e compatíveis da semana 01:

  • a semana com a primeira quinta-feira do ano inicial nela (a definição ISO formal),
  • a semana com 4 de janeiro,
  • a primeira semana com a maioria (quatro ou mais) de seus dias no ano inicial, e
  • a semana começando com a segunda-feira no período de 29 de dezembro - 4 de janeiro.

Como consequência, se 1 de janeiro for uma segunda, terça, quarta ou quinta-feira, será na semana 01. Se 1 de janeiro for uma sexta, sábado ou domingo, será na semana 52 ou 53 do ano anterior (há sem semana 00). 28 de dezembro é sempre a última semana do ano.

O número da semana pode ser descrito contando as quintas-feiras: a semana 12 contém a 12ª quinta-feira do ano.

O ano de numeração da semana ISO começa no primeiro dia (segunda-feira) da semana 01 e termina no domingo antes do novo ano ISO (portanto, sem sobreposição ou intervalo). Consiste em 52 ou 53 semanas completas. A primeira semana ISO de um ano pode ter até três dias que estão realmente no ano do calendário gregoriano que está terminando; se três, são segunda, terça e quarta-feira. Da mesma forma, a última semana ISO de um ano pode ter até três dias que estão realmente no ano do calendário gregoriano que está começando; se três, são sexta-feira, sábado e domingo. A quinta-feira de cada semana ISO está sempre no ano do calendário gregoriano indicado pelo ano de numeração da semana ISO.

Exemplos:

  • Segunda-feira, 29 de dezembro de 2008 é escrito "2009-W01-1"
  • Domingo, 3 de janeiro de 2010 é escrito "2009-W53-7"

Datas ordinais

AAAA-DDD ou AAAADDD

Uma data ordinal é uma forma simples para ocasiões em que a natureza arbitrária das definições de semana e mês são mais um impedimento do que uma ajuda, por exemplo, ao comparar datas de calendários diferentes. Conforme representado acima, [AAAA] indica um ano. [DDD] é o dia desse ano, de 001 a 365 (366 em anos bissextos ). Por exemplo, "1981-04-05" também é "1981-095" .

Este formato é usado com sistemas de hardware simples que precisam de um sistema de data, mas onde incluir software de cálculo de calendário completo pode ser um incômodo significativo. Este sistema é às vezes referido como "Data Juliana", mas isso pode causar confusão com o dia juliano astronômico , uma contagem sequencial do número de dias desde o dia 0 começando em 1º de janeiro de 4713 aC Meio-dia de Greenwich, calendário proléptico Juliano (ou meio-dia na ISO data −4713-11-24 que usa o calendário proléptico gregoriano com um ano 0000).

Vezes

hh: mm: ss.sss ou Thhmmss.sss
hh: mm: ss ou Thhmmss
hh: mm ou Thhmm
Thh

ISO 8601 usa o sistema de relógio de 24 horas . No ISO 8601-1: 2019, o formato básico é T [hh] [mm] [ss] e o formato estendido é T [hh]: [mm]: [ss]. As versões anteriores omitiam o T (representando o tempo) em ambos os formatos.

  • [hh] refere-se a uma hora preenchida com zero entre 00 e 23.
  • [mm] refere-se a um minuto preenchido com zero entre 00 e 59.
  • [ss] refere-se a um segundo preenchido com zero entre 00 e 60 (onde 60 é usado apenas para denotar um segundo bissexto adicionado ).

Portanto, uma hora pode aparecer como "T134730" no formato básico ou "T13: 47: 30" no formato estendido . A ISO 8601-1: 2019 permite que o T seja omitido no formato estendido, como em "13:47:30", mas só permite que o T seja omitido no formato básico quando não há risco de ambigüidade com as expressões de data.

Os segundos, ou os minutos e segundos, podem ser omitidos dos formatos de tempo básico ou estendido para maior brevidade, mas menor precisão; os formatos de tempo de precisão reduzida resultantes são:

  • T [hh] [mm] no formato básico ou [hh]: [mm] no formato estendido , quando os segundos são omitidos.
  • T [hh], quando os segundos e os minutos são omitidos.

De acordo com a norma ISO 8601-1: 2019, a meia - noite só pode ser referida como "00:00", correspondendo ao início de um dia de calendário. Versões anteriores do padrão permitiam "24:00" correspondendo ao final de um dia, mas isso é explicitamente proibido pela revisão de 2019.

Uma fração decimal pode ser adicionada ao elemento de tempo de ordem inferior presente, em qualquer uma dessas representações. Uma marca decimal , uma vírgula ou um ponto (seguindo ISO 80000-1 de acordo com ISO 8601: 1-2019, que não estipula uma preferência, exceto dentro dos Padrões Internacionais, mas com uma preferência por uma vírgula de acordo com ISO 8601: 2004) é usado como separador entre o elemento de tempo e sua fração. Para denotar "14 horas, 30 minutos e meio", não inclua o valor dos segundos. Represente-o como "14: 30,5", "T1430,5", "14: 30,5" ou "T1430,5". Não há limite para o número de casas decimais para a fração decimal. No entanto, o número de casas decimais deve ser acordado pelas partes comunicantes. Por exemplo, no Microsoft SQL Server, a precisão de uma fração decimal é 3 para DATETIME, ou seja, "aaaa-mm-ddThh: mm: ss [.mmm]".

Designadores de fuso horário

<time> Z
<hora> ± hh: mm
<time> ± hhmm
<hora> ± hh

Os fusos horários no ISO 8601 são representados como hora local (com o local não especificado), como UTC ou como um deslocamento do UTC.

Hora local (não qualificado)

Se nenhuma informação de relação UTC for fornecida com uma representação de hora, a hora é assumida como sendo a hora local. Embora possa ser seguro assumir a hora local ao se comunicar no mesmo fuso horário, é ambíguo quando usado na comunicação em diferentes fusos horários. Mesmo dentro de um único fuso horário geográfico, alguns horários locais serão ambíguos se a região seguir o horário de verão . Geralmente é preferível indicar um fuso horário (designador de zona) usando a notação do padrão.

Tempo Universal Coordenado (UTC)

Se a hora estiver em UTC , adicione um Z diretamente após a hora sem um espaço. Z é o designador de zona para o deslocamento UTC zero. "09:30 UTC" é, portanto, representado como "09: 30Z" ou "T0930Z". "14:45:15 UTC" seria "14: 45: 15Z" ou "T144515Z".

O sufixo Z na representação de hora ISO 8601 é algumas vezes referido como "hora Zulu" porque a mesma letra é usada para designar o fuso horário Zulu . No entanto, o padrão ACP 121 que define a lista de fusos horários militares não faz nenhuma menção ao UTC e deriva a "hora Zulu" do Horário de Greenwich, que anteriormente era usado como o padrão de horário civil internacional. GMT não é mais definido com precisão pela comunidade científica e pode se referir a UTC ou UT1, dependendo do contexto.

Ajustes de tempo de UTC

O deslocamento UTC é anexado à hora da mesma maneira que 'Z' estava acima, na forma ± [hh]: [mm], ± [hh] [mm] ou ± [hh].

Os deslocamentos UTC negativos descrevem um fuso horário a oeste de UTC ± 00: 00 , em que a hora civil está atrasada (ou anterior) ao UTC, de modo que o designador de zona será semelhante a "−03: 00", "- 0300" ou "−03 "

Os deslocamentos UTC positivos descrevem um fuso horário no ou a leste do UTC ± 00: 00 , onde o horário civil é o mesmo ou à frente (ou posterior) do UTC, então o designador da zona será semelhante a "+02: 00", "+ 0200 "ou" +02 ".

Exemplos

Consulte a Lista de deslocamentos de horário UTC para outros deslocamentos UTC .

Para representar um deslocamento negativo, o ISO 8601 especifica o uso de um sinal de menos . Se o conjunto de caracteres de troca for limitado e não tiver um caractere de sinal de menos, o hífen-menos deve ser usado. ASCII não tem um sinal de menos, então seu caractere de hífen-menos (o código é decimal 45 ou hexadecimal 2D) seria usado. Se o conjunto de caracteres tiver um sinal de menos, esse caractere deve ser usado. Unicode tem um sinal de menos e seu código de caractere é U + 2212 (2212 hexadecimal); a invocação da entidade de caractere HTML é &minus;.

Os seguintes tempos referem-se todos ao mesmo momento: "18: 30Z", "22: 30 + 04", "1130−0700" e "15: 00−03: 30". Letras de fuso horário náutico não são usadas com exceção de Z. Para calcular a hora UTC, é necessário subtrair a diferença da hora local, por exemplo, para "15: 00−03: 30" faça 15:00 - (−03: 30) para obter 18:30 UTC.

Um deslocamento de zero, além de ter a representação especial "Z", também pode ser declarado numericamente como "+00: 00", "+0000" ou "+00". No entanto, não é permitido indicá-lo numericamente com um sinal negativo, como "−00: 00", "−0000" ou "−00". A seção que determina o uso do sinal afirma que um sinal de mais deve ser usado para um valor positivo ou zero e um sinal de menos para um valor negativo. Ao contrário desta regra, o RFC 3339, que é um perfil da ISO 8601, permite o uso de "-00", com a mesma denotação de "+00", mas com uma conotação diferente.

Representações combinadas de data e hora

<data> T <hora>

Um único ponto no tempo pode ser representado pela concatenação de uma expressão de data completa, a letra "T" como um delimitador e uma expressão de hora válida. Por exemplo, "2007-04-05T14: 30" . Na ISO 8601: 2004, era permitido omitir o caractere "T" por acordo mútuo como em "200704051430" , mas esta disposição foi removida na ISO 8601-1: 2019. Separar partes de data e hora com outros caracteres, como espaço, não é permitido no ISO 8601, mas permitido em seu perfil RFC 3339.

Se um designador de fuso horário for necessário, ele seguirá a data e a hora combinadas. Por exemplo, "2007-04-05T14: 30Z" ou "2007-04-05T12: 30−02: 00" .

Podem ser usados ​​formatos básicos ou estendidos, mas a data e a hora devem usar o mesmo formato. A expressão de data pode ser calendário, semana ou ordinal e deve usar uma representação completa. A hora pode ser representada usando um formato de precisão reduzida especificado.

Durações

PnYnMnDTnHnMnS
PnW
P <data> T <hora>

As durações definem a quantidade de tempo interveniente em um intervalo de tempo e são representadas pelo formato P [n] Y [n] M [n] DT [n] H [n] M [n] S ou P [n] W como mostrado ao lado. Nessas representações, o [n] é substituído pelo valor de cada um dos elementos de data e hora que seguem o [n]. Os zeros iniciais não são necessários, mas o número máximo de dígitos para cada elemento deve ser acordado pelas partes comunicantes. As letras maiúsculas P , Y , M , W , D , T , H , M e S são designadores para cada um dos elementos de data e hora e não são substituídas.

  • P é o designador de duração (para período ) colocado no início da representação de duração.
    • Y é o designador do ano que segue o valor do número de anos.
    • M é o designador do mês que segue o valor do número de meses.
    • W é o designador da semana que segue o valor do número de semanas.
    • D é o designador do dia que segue o valor do número de dias.
  • T é o designador de tempo que precede os componentes de tempo da representação.
    • H é o designador da hora que segue o valor do número de horas.
    • M é o designador de minuto que segue o valor para o número de minutos.
    • S é o segundo designador que segue o valor para o número de segundos.

Por exemplo, "P3Y6M4DT12H30M5S" representa uma duração de "três anos, seis meses, quatro dias, doze horas, trinta minutos e cinco segundos".

Os elementos de data e hora, incluindo seu designador, podem ser omitidos se seu valor for zero, e os elementos de ordem inferior também podem ser omitidos para reduzir a precisão. Por exemplo, "P23DT23H" e "P4Y" são ambas representações de duração aceitáveis. No entanto, pelo menos um elemento deve estar presente, portanto, "P" não é uma representação válida por uma duração de 0 segundos. "PT0S" ou "P0D", entretanto, são válidos e têm a mesma duração.

Para resolver a ambigüidade, "P1M" é uma duração de um mês e "PT1M" é uma duração de um minuto (observe o designador de tempo, T, que precede o valor de tempo). O menor valor usado também pode ter uma fração decimal, como em "P0,5Y" para indicar meio ano. Esta fração decimal pode ser especificada com uma vírgula ou ponto final , como em "P0,5Y" ou "P0,5Y". A norma não proíbe que os valores de data e hora em uma representação de duração excedam seus "pontos de transferência", exceto conforme observado abaixo. Assim, "PT36H" poderia ser usado, bem como "P1DT12H" para representar a mesma duração. Mas tenha em mente que "PT36H" não é o mesmo que "P1DT12H" ao alternar entre o horário de verão .

Alternativamente, um formato de duração com base em representações combinadas de data e hora pode ser usado por acordo entre as partes comunicantes no formato básico PYYYYMMDDThhmmss ou no formato estendido P [AAAA] - [MM] - [DD] T [hh]: [mm]: [ss] . Por exemplo, a primeira duração mostrada acima seria "P0003-06-04T12: 30: 05" . No entanto, os valores individuais de data e hora não podem exceder seus módulos (por exemplo, um valor de 13 para o mês ou 25 para a hora não seria permitido).

Embora o padrão descreva uma duração como parte de intervalos de tempo, que são discutidos na próxima seção, o formato de duração (ou um subconjunto dele) é amplamente usado independente de intervalos de tempo, como com a classe Java 8 Duration.

Intervalos de tempo

<início> / <fim>
<início> / <duração>
<duração> / <fim>
<duração>

Um intervalo de tempo é o tempo intermediário entre dois pontos no tempo. A quantidade de tempo intermediário é expressa por uma duração (conforme descrito na seção anterior). Os dois pontos no tempo (início e fim) são expressos por uma representação combinada de data e hora ou apenas uma representação de data.

Existem quatro maneiras de expressar um intervalo de tempo:

  1. Início e fim, como "2007-03-01T13: 00: 00Z / 2008-05-11T15: 30: 00Z"
  2. Início e duração, como "2007-03-01T13: 00: 00Z / P1Y2M10DT2H30M"
  3. Duração e término, como "P1Y2M10DT2H30M / 2008-05-11T15: 30: 00Z"
  4. Apenas duração, como "P1Y2M10DT2H30M", com informações de contexto adicionais

Destes, os três primeiros requerem dois valores separados por um designador de intervalo que geralmente é um solidus (mais comumente referido como uma barra "/"). A seção 3.2.6 da ISO 8601-1: 2019 observa que "Um solidus pode ser substituído por um hífen duplo [" - "] por acordo mútuo dos parceiros de comunicação." e as versões anteriores usavam notações como "2000--2002". O uso de um hífen duplo em vez de solidus permite a inclusão em nomes de arquivos de computador ; em sistemas operacionais comuns, um solidus é um caractere reservado e não é permitido em um nome de arquivo.

Para expressões <início> / <fim>, se algum elemento estiver faltando no valor final, eles serão considerados iguais aos do valor inicial, incluindo o fuso horário. Este recurso do padrão permite representações concisas de intervalos de tempo. Por exemplo, a data de uma reunião de duas horas incluindo os horários de início e término pode ser simplesmente mostrada como "2007-12-14T13: 30/15: 30", onde "/ 15: 30" implica "/ 2007-12- 14T15: 30 "(a mesma data de início) ou as datas de início e término de um período de faturamento mensal como" 2008-02-15 / 03-14 ", onde" / 03-14 "implica" / 2008-03 -14 "(o mesmo ano do início).

Se uma maior precisão for desejável para representar o intervalo de tempo, então mais elementos de tempo podem ser adicionados à representação. Um intervalo denotado "2007-11-13 / 15" pode começar a qualquer momento em 2007-11-13 e fim em qualquer momento em 2007-11-15 , enquanto "2007-11-13T09: 00 / 15T17: 00" inclui os horários de início e término. Para incluir explicitamente todas as datas de início e término, o intervalo seria representado como "2007-11-13T00: 00 / 16T00: 00" .

Intervalos de repetição

Rn / <intervalo>
R / <intervalo>

Os intervalos de repetição são especificados na cláusula "4.5 Intervalo de tempo recorrente". Eles são formados adicionando "R [n] /" ao início de uma expressão de intervalo, onde R é usado como a própria letra e [n] é substituído pelo número de repetições. Deixar de fora o valor de [n] ou especificar um valor de -1 significa um número ilimitado de repetições. Um valor de 0 para [n] significa que o intervalo não se repete.

Se o intervalo especifica o início (formas 1 e 2 acima), então este é o início do intervalo de repetição. Se o intervalo especifica o fim, mas não o início (formulário 3 acima), então este é o fim do intervalo de repetição. Por exemplo, para repetir o intervalo de "P1Y2M10DT2H30M" cinco vezes começando em "2008-03-01T13: 00: 00Z" , use "R5 / 2008-03-01T13: 00: 00Z / P1Y2M10DT2H30M" .

Representações truncadas

ISO 8601: 2000 permitido truncamento (por acordo), onde os principais componentes de uma data ou hora são omitidos. Notavelmente, isso permitiu que anos de dois dígitos fossem usados ​​e os formatos ambíguos AA-MM-DD e AAAMMDD. Esta disposição foi removida na ISO 8601: 2004.

Representações truncadas
Modelo Formato básico Exemplo básico Formato estendido Exemplo estendido
Uma data específica no século implícito AAMMDD 851026 AA-MM-DD 85-10-26
Um ano e mês específicos no século implícito -AAMM -8510 -YY-MM -85-10
Um ano específico no século implícito -YY -85 N / D
Um dia específico de um mês no ano implícito --MMDD - 1026 - MM-DD - 10-26
Um mês específico no ano implícito --MILÍMETROS - 10 N / D
Um dia específico no mês implícito --- DD --- 26

Apenas o primeiro tipo (data específica no século implícito) omite o início -para o século. Todos os outros formatos têm um líder -por século, ano e mês omitidos.

Extensões padronizadas

ISO 8601-2: 2019 define um conjunto de extensões padronizadas para os formatos de data e hora ISO 8601.

Formato de data / hora estendido (EDTF)
O EDTF é dado como exemplo de perfil de ISO 8601. Algumas de suas características são:
  • Qualificadores incertos e aproximados, '?' e '~', bem como seus combinados usados, '%'; eles podem ser aplicados a toda a data ou a componentes individuais.
  • Intervalos de tempo com um final aberto (ilimitado) ou um final desconhecido.
  • Notação de algarismo exponencial e significativo em anos.
  • Valores especiais de "mês" indicando agrupamentos de sub-anos, como estações e trimestres.
  • Sintaxe para serializar uma lista de datas.
Os recursos do EDTF são descritos na seção "Extensões de data e hora" da ISO 8601-2: 2019.
Repita as regras para intervalos de tempo recorrentes
ISO 8601-2: 2019 também define um formato para restringir intervalos de repetição com base na sintaxe do iCalendar .

Uso

Na Internet , o World Wide Web Consortium (W3C) usa o padrão IETF baseado na ISO 8601 para definir um perfil do padrão que restringe os formatos de data e hora suportados para reduzir a chance de erro e a complexidade do software. A especificação muito simples é baseada em um rascunho da RFC 3339 mencionada abaixo.

A ISO 8601 é referenciada por várias especificações, mas a gama completa de opções da ISO 8601 nem sempre é usada. Por exemplo, os vários padrões de guia de programa eletrônico para TV, rádio digital, etc. usam várias formas para descrever pontos no tempo e durações. A especificação de metadados de áudio ID3 também faz uso de um subconjunto do ISO 8601. O GeneralizedTime do padrão de codificação X.690 faz uso de outro subconjunto do ISO 8601.

Comércio

A data da semana ISO 8601 , a partir de 2006, apareceu em sua forma básica nas embalagens comerciais das principais marcas nos Estados Unidos. Sua aparência dependia da embalagem, enlatamento ou engarrafamento específico, mais do que de qualquer marca em particular. O formato é particularmente útil para garantia de qualidade, de forma que erros de produção possam ser facilmente rastreados até semanas de trabalho e produtos possam ser corretamente direcionados para recall.

RFCs

IETF RFC 3339 define um perfil de ISO 8601 para uso em protocolos e padrões da Internet . Exclui explicitamente durações e datas anteriores à era comum . Os formatos mais complexos, como números de semana e dias ordinais, não são permitidos.

O RFC 3339 se desvia do ISO 8601 ao permitir que um deslocamento de fuso horário zero seja especificado como "-00: 00", o que o ISO 8601 proíbe. A RFC 3339 pretende que "-00: 00" carregue a conotação de que não está declarando um fuso horário preferencial, enquanto a conformidade "+00: 00" ou qualquer deslocamento diferente de zero indica que o deslocamento que está sendo usado é o preferido. Esta convenção relativa a "-00: 00" é derivada de RFCs anteriores, como a RFC 2822, que a usa para carimbos de data / hora em cabeçalhos de e-mail . A RFC 2822 não afirmou que qualquer parte de seu formato de carimbo de data / hora está em conformidade com a ISO 8601 e, portanto, estava livre para usar essa convenção sem conflito.

Adoção como padrões nacionais

Austrália AS ISO 8601-2007
Áustria ÖNORM ISO 8601 (substituído ÖNORM EN 28601)
Bélgica NBN EN 28601 (1993)
Brasil NBR 5892: 2019
Canadá CAN / CSA-Z234.4-89 (R2007)
Colômbia NTC 1034: 2014 Fonte ICONTEC (este padrão é idêntico ao ISO 8601: 2004)
China GB / T 7408-2005
República Checa ČSN ISO 8601 (substituído ČSN EN 28601)
Dinamarca DS / ISO 8601: 2005 (substituído DS / EN 28601)
Estônia EVS 8: 2008; EVS-ISO 8601: 2011
Norma europeia EN ISO 8601, EN 28601: 1992 (cancelado em 7 de outubro de 2011)
Finlândia SFS-EN 28601
França NF Z69-200; NF EN 28601: 1993-06-01 (cancelado)
Alemanha DIN ISO 8601: 2006-09 (substituído DIN EN 28601: 1993-02); relacionado: DIN 5008: 2011-04 (substituído DIN 5008: 2005-05, DIN 5008: 2001-11, DIN 5008: 1996-05)
Grécia ELOT EN 28601
Hungria MSZ ISO 8601: 2003
Islândia IST EN 28601: 1992 (obsoleto)
Índia IS 7900: 2001
Irlanda IS / EN 28601: 1993
Itália UNI EN 28601 (1993)
Japão JIS X 0301: 2002
Republica da Coréia KS X ISO 8601
Lituânia LST ISO 8601: 2006 (substituiu LST ISO 8601: 1997)
Luxemburgo ITM-EN 28601
Holanda NEN ISO 8601, NEN EN 28601 (1994), NEN 2772
Noruega NS-ISO 8601
Polônia PN-EN 28601: 2002 (obsoleto em 2008. Nenhum padrão foi fornecido em troca).
Portugal NP EN 28601
Rússia ГОСТ ИСО 8601-2001 (atual), ГОСТ 7.64-90 (obsoleto)
África do Sul SANS 8601: 2009
Espanha UNE EN 28601: 1995
Suécia SS-ISO 8601: 2011 (aprovado 2011-11-01, substitui SS-ISO 8601)
Suíça SN ISO 8601: 2005-08 (substituído SN-EN 28601: 1994)
Taiwan CNS 7648
Tailândia TIS 1111: 2535 (1992)
Turquia TS ISO 8601
Ucrânia ДСТУ ISO 8601: 2010
Reino Unido BS ISO 8601: 2004, BS EN 28601 (30/06/1989)
Estados Unidos ANSI INCITS 30-1997 (R2008) e NIST FIPS PUB 4-2
Vietnã TCVN 6398-1: 1998

Veja também

Notas e referências

links externos

Visão geral da implementação