O Java 8 tem uma biblioteca totalmente nova para datas e horas no pacote java.time, o que é muito bem-vindo para quem já teve que usar o JodaTime antes ou se incomodou em criar seus próprios métodos auxiliares de processamento de datas. Muitas classes neste pacote representam registros de data e hora e têm métodos auxiliares como getHour()
obter horas do registro de data e hora, getMinute()
minutos do registro de data e hora, getNano()
obter nanos do registro de data e hora, etc ...
Notei que eles não têm um método chamado getMillis()
para obter o milésimo de tempo. Em vez disso, seria preciso chamar o método get(ChronoField.MILLI_OF_SECOND)
. Para mim, parece uma inconsistência na biblioteca. Alguém sabe por que esse método está faltando ou como o Java 8 ainda está em desenvolvimento, existe a possibilidade de ser adicionado posteriormente?
https://docs.oracle.com/javase/8/docs/api/java/time/package-summary.html
As classes definidas aqui representam os principais conceitos de data e hora, incluindo instantes, durações, datas, horas, fusos horários e períodos. Eles são baseados no sistema de calendário ISO, que é o calendário mundial de fato, seguindo as regras gregorianas pró-sépticas. Todas as classes são imutáveis e seguras para threads.
Cada instância de data e hora é composta por campos que são convenientemente disponibilizados pelas APIs. Para acesso de nível inferior aos campos, consulte o
java.time.temporal
pacote. Cada aula inclui suporte para impressão e análise de todos os tipos de datas e horas. Consulte ojava.time.format
pacote para opções de personalização ...
Exemplo deste tipo de classe:
https://docs.oracle.com/javase/8/docs/api/java/time/LocalDateTime.html
Uma data e hora sem fuso horário no sistema de calendário ISO-8601, como 2007-12-03T10: 15: 30.
LocalDateTime
é um objeto de data e hora imutável que representa uma data e hora, geralmente vista como ano-mês-dia-hora-hora-minuto-segundo. Outros campos de data e hora, como dia do ano, dia da semana e semana do ano, também podem ser acessados. O tempo é representado com precisão de nanossegundos. Por exemplo, o valor "2 de outubro de 2007 às 13: 45.30.123456789" pode ser armazenado em umLocalDateTime
...
Instant
classe
get()
, em vez de atribuir nomes únicos e individuais. Se isso lhe incomoda, escreva uma classe que herda a classe original e coloque seu própriogetMillis()
método na nova classe.