Pergunta

Como representar os horários de início e fim para um dia?

Usando 23 de outubro de 2008 como um exemplo, é começar 2008-10-23 12:00:00 e acabam 2008-10-23 11:59:59?

Foi útil?

Solução

A sua notação é estranho. Eu sugiro a forma padrão de especificação de um intervalo de dia inteiro é:

2008-10-23 00:00:00 e acabamento 2008-10-23 23:59:59

Outras dicas

Eu gostaria de citar um site, http: // www .cl.cam.ac.uk / ~ mgk25 / iso-time.html

A notação padrão internacional para a hora do dia é

hh:mm:ss

onde hh é o número de horas completas que passaram desde a meia-noite (00-24), mm é o número de minutos completas que passaram desde o início da hora (00-59), e SS representa o número de segundos completos desde o início do minuto (00-60). Se o valor da hora é 24, então o segundo valores de minuto e deve ser zero.

Nota: O valor de 60 para ss pode às vezes ser necessário durante um segundo salto inserido em uma escala de tempo atômica como Tempo Universal Coordenado (UTC). Um único salto segunda 23:59:60 é inserido na escala de tempo UTC cada poucos anos, como anunciado pelo Serviço de Rotação da Terra Internacional, em Paris, para manter UTC de vaguear afastado mais de 0,9 s do UT1 escala de tempo astronômica menos constante, o que é definido pela rotação real da terra. Na prática, você não é muito provável que assistamos a um relógio mostrando 23:59:60. A maioria dos relógios sincronizados resynchronize novamente para UTC algum tempo depois de um segundo salto aconteceu, ou eles temporariamente abrandar perto da hora de um salto segundos, para evitar qualquer perturbação que um timestamp out-of-range poderiam causar.

Um exemplo tempo é

23:59:59

que representa o tempo de um segundo antes da meia-noite.

Tal como acontece com a notação data, os dois pontos separando pode também ser omitido tal como no

235959

e a precisão pode ser reduzido, omitindo os segundos ou ambos os segundos e minutos como em

23:59, 2359, or 23

Também é possível adicionar frações de segundo depois de um ponto ou vírgula decimais, por exemplo, o tempo de 5,8 ms antes da meia-noite pode ser escrita como

23:59:59.9942 or 235959.9942

Como todos os dias tanto começa e termina com a meia-noite, as duas notações às 00:00 e 24:00 estão disponíveis para distinguir as duas meias-noites que podem ser associados com uma data. Isto significa que as duas notações seguintes referem-se exatamente o mesmo ponto no tempo:

1995-02-04 24:00 = 1995-02-05 00:00

Em caso é necessária uma representação inequívoca do tempo, 0:00 é geralmente a notação preferida para a meia-noite e não 24:00. relógios digitais exibir as 00:00 e não 24:00.

ISO 8601 não especifica, se as suas notações especificar um ponto no tempo ou um período de tempo. Isto significa, por exemplo, que a ISO 8601 não se definem 09:00 refere-se ao final exacto da nona hora do dia ou o período de 09:00 - 09:01, ou qualquer outra coisa. Os usuários do mosto padrão de alguma forma, chegar a acordo sobre a interpretação exata da notação de tempo, se este deve ser de qualquer preocupação.

Se uma data e uma hora aparecem na mesma linha, em seguida, sempre escrever a data na frente do tempo. Se uma data e um valor de tempo são armazenados juntos em um único campo de dados, em seguida, ISO 8601 sugere que eles devem ser separados por uma letra maiúscula latina T, como em 19951231T235959.

Uma observação para os leitores do U.S:.

A notação de tempo de 24 horas especificado aqui já foi o padrão de fato em todo o mundo na linguagem escrita por décadas. A única exceção são alguns países que falam Inglês, quando ainda notações com horas entre 1 e 12 e adições como “da manhã” e “da tarde” estão em ampla utilização. A notação padrão internacional comum 24h é amplamente utilizado agora mesmo na Inglaterra (por exemplo, em aeroportos, cinemas, horários de ônibus / trem, etc.). A maioria dos outros idiomas nem sequer têm abreviaturas como “da manhã” e “da tarde” ea notação 12h certamente é raramente utilizada na Europa Continental para escrever ou exibir um tempo. Mesmo nos EUA, os programadores militares e de computador têm vindo a utilizar a notação 24h por um longo tempo.

A notação Inglês 12h de idade tem muitas desvantagens como:

  • É mais do que a notação 24h normal.
  • É preciso um poucomais tempo para os seres humanos para comparar duas vezes em notação 12h.
  • Não está claro, como 00:00, 12:00 e 24:00 estão representados. enciclopédias mesmo e manuais de estilo contêm contrariando as descrições e uma correção rápida comum parece ser a de evitar “12:00 a.m./p.m.” completamente e escrever “meio-dia”, “meia-noite”, ou “00:01 a.m./p.m.” em vez disso, embora a palavra “meia-noite” ainda não faz distinção entre as 00:00 e as 24:00 (meia-noite no início ou no final de um determinado dia).
  • Isso torna as pessoas muitas vezes acreditam que no dia seguinte começa no estouro de “0:59” com “1:00”, que é um problema comum não só quando as pessoas tentam programar o temporizador de videocassetes pouco depois da meia-noite.
  • Não é facilmente comparável com uma operação de String de comparação.
  • Não é imediatamente claro para o inconsciente, se o tempo entre “12:00 a.m./p.m.” e “1:00 a.m./p.m.” começa às 00:00 ou às 12:00, ou seja, a notação 12h Inglês é mais difícil de entender.

Por favor, considere o tempo de 12h para ser uma relíquia da Idade das Trevas, quando foram usados ??algarismos romanos, o número zero ainda não tinha sido inventado e relógios analógicos foram a única forma conhecida de exibir um tempo. Por favor, evite usá-lo hoje, especialmente em aplicações técnicas! Mesmo nos EUA, o amplamente respeitado Chicago Manual de estilo agora recomenda o uso da notação de tempo padrão internacional em publicações.

Com certeza, se você quiser apenas para representar um dia, você não precisa incluir o momento a todos - especialmente como este aumenta o nível tal de discussão sobre quando um dia começa ou termina. Na minha experiência, manipulação de data geralmente é complicada o suficiente, sem a introdução de qualquer complexidade extra.

Hoje é 20 de outubro de 2008 -. Não mais informações é necessário

Ou estou faltando alguma coisa?

outubro 23 começa em 2008-10-23 12:00 e termina às 2008-10-24 extremidades 12 dias AM-a no mesmo ponto exato da próxima começa. O último segundo começa às 23:59:59 mas você ainda tem um segundo inteiro antes do dia é longo.

A definição do dia que você menciona na questão é a qualquer momento que for> = 2008-10-23 00:00:00 e <2008-10-24 00:00:00.

Se você fosse para usar a notação de intervalo de matemática, você escrevê-lo como

[2008-10-23 00:00:00, 2008-10-24 00:00:00)

O [ meio de inclusão, e ) fortes meios até, mas não incluindo a.

Desta forma, você torná-lo mais fácil para os usuários e para si mesmo.

Depende do que você entende por um dia. manipulação de data é, infelizmente, sempre mais complexa do que parece.

Para converter seu exemplo em 24h formato de data ISO, você diria:

2008-10-23 00:00:00 - 2008-10-23 23:59:59

No entanto, dependendo se você interpretar uma gama tão inclusivo ou exclusivo que poderia omitir o último segundo do dia *. Os programadores normalmente preferem manter o exclusivo limite superior, assim você iria para:

2008-10-23 00:00:00 - 2008-10-24 00:00:00

Ou, como uma maneira um pouco mais agradável de afirmar o mesmo, se suportado (ou para facilitar a leitura humana):

2008-10-23 00:00:00 - 2008-10-23 24:00:00

*: na verdade, possivelmente mais do que um. Se a amplitude representa um dia no fuso horário UTC (ou outro fuso horário alinhado com ela, o que é muito provável), não podem, ocasionalmente, ser um 'segundo salto' extra no final do dia, 23:59:60, em um sentido tentar manter UTC em linha com tempo sideral. A próxima segunda salto está prevista para o final deste ano. No entanto, muitos sistemas ignorar segundos bissextos porque é bobo e irritante.

Se você deseja representar um 'dia de calendário' independentemente de fusos horários a sua melhor aposta é o número do dia Juliano. Hoje é 2.454.760.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top