Existem muitas classes diretamente relacionadas à data em Java. Os mais usados são data e calendário no pacote java.util. Quando você precisar usar o formato, você também usará java.text.simpledateFormat.
Primeiro de tudo, deixe -me reclamar que a data e o calendário são realmente um pouco estranhos para usar. Eu não estava familiarizado com isso quando o usei pela primeira vez e sempre não sabia dizer o uso e as diferenças específicas entre as aulas de data e calendário.
Além disso, o método do conjunto de classes do calendário tem alguma anti-humanidade ao definir datas. Ao definir o mês, você sempre precisa compensá -lo e subtrair 1. Por exemplo, se deseja defini -lo para 6 de janeiro de 2018, precisará defini -lo para 2018, 0, 6, porque janeiro é representado por 0 aqui:
Calendário cal = calendar.getInstance (); cal.set (2018, 0, 8);
Pelas razões específicas, consulte a resposta aqui: Stackoverflow: Por que o mês de janeiro está no calendário Java?
Enfim, eu não aguento. .
Alguns dias atrás, havia um requisito simples, que era para calcular a idade com base em duas datas. Verifiquei a Internet e abandonei diretamente as classes de data e calendário diretamente e usei diretamente java.time.localdate. Sem mais delongas, basta fazer o upload do código:
importar java.time.localdate; public classe testlocaldate {public static void main (string [] args) {localDate Date1 = localDate.Of (2018, 1, 6); LOCALDATE DATA2 = LOCALDATE.OF (1991, 1, 3); Int Age = Date2.until (date1) .getYears (); System.out.println ("você" você " + idade +" anos de idade "); }}Resultado da saída:
Você tem 27 anos.
As chamadas de conversão mútuas ligeiramente complexas e avassaladoras entre a data e as classes do calendário são abandonadas, e o código também é muito claro. Não é muito agradável?
Java.Time é uma biblioteca de data e hora recentemente introduzida no Java 8. Os seguintes métodos estão todos no pacote Java.Time.
Vamos dar uma olhada em como esse código calcula a diferença horária de uma maneira simples e refrescante:
Primeiro de tudo, o LocalDate é uma classe imutável (classe imutável); portanto, como a classe String, você não precisa ser novo um novo objeto a ser usado (?)
Depois, há o método usado pela classe LocalDate para definir a data:
Public Static LocalDate de (int ano, mês, mês, diafmonth) Public Static LocalDate de (Int Ano, Int Mês, Int Dayofmonth)
Existem três métodos sobrecarregados no total, dois dos quais estão listados aqui. A aula do primeiro mês é um tipo de enumeração que contém o nome em inglês do mês, como janeiro, novembro, etc.
O segundo é o cenário normal do ano, mês e dia. A boa notícia é que o mês aqui começa de 1, o que significa que você não precisa mais subtrair 1 manualmente! ! !
A seguir, o método até o método usado pela classe LocalDate para comparar as datas:
Período público até (cronolocaldato enddateExclusive)
Este método retorna um objeto do período do tipo.
O período representa um período de intervalos de tempo que são moldados como "2 anos, 3 meses, 4 dias". O próximo método getyears chamado pertence à classe de período.
Por fim, vamos dar uma olhada em alguns métodos para obter intervalos de tempo na aula de período:
public int getyears () public int getMonths () public int getDays ()
Esses três métodos são usados para obter o ano, mês e dia do intervalo de tempo, respectivamente. Sim, é tão simples.
Resumir
O exposto acima é o método de implementação de usar o LocalDate para calcular a idade com base nas datas em Java introduzidas pelo editor. Espero que seja útil para todos. Se você tiver alguma dúvida, deixe -me uma mensagem e o editor responderá a todos a tempo!