Como comparar duas datas em java
4: Métodosusar compareToUse iguais, antes e depoisUsando a classe Calendarusar getTime
Existem várias maneiras de comparar duas datas em Java. A data é representada internamente como um ponto no tempo tipo longo: O número de milissegundos que se passaram desde 1 de Janeiro de 1970. Em Java, Data (em espanhol, "data") É um objeto, o que significa que inclui vários métodos para comparação. Qualquer método para comparar duas datas, essencialmente comparar o tempo de essas datas.
método 1
uso compareTo1
uso compareTo. A aula data implementos comparável , assim você pode comparar duas datas diretamente com o método compareTo. Se as datas representam o mesmo ponto no tempo, o método retorna um zero. Se a data está indo para comparar argumento anterior data, o método retorna um valor menor que zero. Se a data for posterior indo para comparar o argumento data, o método vai devolver um valor maior do que zero. Se as datas são as mesmas, o método retorna um zero.
2
Cria objetos do tipo data. Você precisa criar cada objeto data antes de iniciar a comparação de datas. Uma maneira de fazer isso é usando a classe SimpleDateFormat. Com ele você pode facilmente entrar valores de data em objetos do tipo data.
SimpleDateFormat sdf = novo SimpleDateFormat("AAAA-MM-dd")- // Para declarar novos valores objetos data, use o mesmo formato que você usou ao criar data datas data date1 = SDF.analisar("1995/02/23")- // Date1 é 23 de fevereiro de 1995data date2 = SDF.analisar("2001-10-31")- // Date2 é 31 de outubro de 2001data DATE3 = SDF.analisar("1995/02/23")- // DATE3 é 23 de fevereiro de 1995
3
comparar itens data. O código a seguir irá mostrar-lhe cada caso (menor, igual e maior que).
date1.compareTo(date2)- // date1 lt; date2, ele retorna um valor menor do que 0date2.compareTo(date1)- // date2 gt; date1, retorna um valor maior que 0date1.compareTo(DATE3)- // Date1 = DATE3, mostrará um 0 no console
método 2
uso é igual a, depois e antes1
uso é igual a, depois e antes. Datas pode ser comparado com os métodos é igual a (Equal), depois (Depois) e antes (Antes). Se duas datas representam o mesmo ponto no tempo, o método é igual a voltará verdadeiro (Verdadeiro). Estes exemplos usam datas criadas anteriormente para o método compareTo.
2
Comparar utilizando o método antes. O código a seguir mostra um verdadeiro e um falso caso. se date1 anteceda date2, antes voltará verdadeiro. Caso contrário, ele irá retornar falso.
sistema.fora.impressão(date1.antes(date2))- // Displays verdadeiros (true)sistema.fora.impressão(date2.antes(date2))- // Retorna false (false)
3
Comparar utilizando o método depois. O código a seguir mostra um verdadeiro e um falso caso. se date2 É depois date1, depois voltará verdadeiro. Caso contrário, ele irá retornar falso.
sistema.fora.impressão(date2.depois(date1))-// Displays verdadeiros (true)sistema.fora.impressão(date1.depois(date2))-// Retorna false (false)
4
Comparar utilizando o método é igual a. O código a seguir mostra um verdadeiro e um falso caso. Se as datas são as mesmas, é igual a voltará verdadeiro. Se não estiverem, ele irá retornar falso.
sistema.fora.impressão(date1.é igual a(DATE3))-// Displays verdadeiros (true)sistema.fora.impressão(date1.é igual a(date2))-// Retorna false (false)
método 3
Use classe calendário1
Use a classe calendário. A aula calendário também métodos compareTo, é igual a, depois e antes Eles estão a trabalhar da mesma maneira como descrito acima para a classe data. Então, se a informação é armazenada em um objeto calendário, Não há necessidade de extrair a data apenas para fazer uma comparação.
2
instancia calendário. Para usar métodos calendário, você precisa criar algumas instâncias desta classe. Felizmente, você pode apenas ter as instâncias datas data criado anteriormente.
calendário CAL1 = calendário.getInstance()- // Declara CAL1calendário CAL2 = calendário.getInstance()- // Declare CAL2calendário CAL3 = calendário.getInstance()- // Declare CAL3CAL1.setTime(date1)- // Aplica data a CAL1CAL2.setTime(date2)-CAL3.setTime(DATE3)-
3
comparar CAL1 e CAL2 utilização antes. O código a seguir deve exibir verdadeiro já que CAL1 anteceda CAL2.
sistema.fora.impressão(CAL1.antes(CAL2))- // Mostra verdadeira (true)
4
comparar CAL1 e CAL2 utilização depois. O código a seguir deve exibir falso já que CAL1 anteceda CAL2.
sistema.fora.impressão(CAL1.depois(CAL2))- // Mostra falso (false)
5
comparar CAL1 e CAL2 utilização é igual a. O código a seguir mostra um exemplo verdadeiro e falso. A condição depende das instâncias calendário sendo comparados. O código deve mostrar verdadeiro e logo falso na linha seguinte.
sistema.fora.println(CAL1.é igual a(CAL3))- // Mostra verdadeira (true) == CAL3 CAL1sistema.fora.impressão(CAL1.é igual a(CAL2))- // Mostra falso (false): CAL1 = CAL2!
método 4
uso getTime1
uso getTime. Você também pode comparar datas directamente a partir do ponto no tempo representado por essas datas, no entanto, pode ser melhor usar os métodos acima, porque eles são mais legível e, portanto, mais conveniente. Esta comparação será feita com dois tipos de dados primitivos, para que possa fazê-lo com lt;, gt; e ==.
2
Cria objetos de tempo tipo longo. Antes que você possa comparar as datas, você deve criar objetos do tipo inteiro longo com objetos de dados data você tinha criado. Felizmente, o método getTime Ele será responsável por fazer o trabalho para você.
longo time1 = getTime(date1)- // Declare variando o original de date1 time1longo time2 = getTime(date2)- // Declare variando o original de date2 time2
3
Faça uma comparação do tipo "menos que". Use o símbolo "menos que" (Lt;) para comparar esses dois valores inteiros. como time1 É menos de time2, Deve ser apresentada a primeira mensagem. a sentença mais Ele é incluído com o fim de aplicar uma sintaxe apropriada.
se(time1 lt; time2){sistema.fora.println("date1 é antes date2")- // Este mensje ser exibida porque time1 }mais{sistema.fora.println("date1 é antes date2")-}
4
Faça uma comparação do tipo "maior do que". Use o símbolo "maior do que" (Gt;) para comparar esses dois valores inteiros. como time1 Ele é maior do que time2, Deve ser apresentada a primeira mensagem. a sentença mais Ele é incluído com o fim de aplicar uma sintaxe apropriada.
se(time2 gt; time1){sistema.fora.println("date1 é depois date2")- // Este mensje ser exibida porque time2 gt; time1 }mais{sistema.fora.println("date2 não é mais tardar date1")-}
5
Faça uma comparação do tipo "como". Use o símbolo de verificação de igualdade (==) para comparar esses dois valores inteiros. como time1 É como time2, Deve ser apresentada a primeira mensagem. Se o programa trata de sentença mais, Isso significa que as datas não são iguais.
se(time1 == time2){sistema.fora.println("datas são iguais")-}mais{sistema.fora.println("datas não são iguais")- // Este mensje ser exibida porque time1! = Time2}