Durante o desenvolvimento de Java, eu estava inevitavelmente enredado com o tipo de data. Eu iria resumir as operações relacionadas a data que o projeto costumava usar. JDK versão 1.7. Se puder ajudá -lo a economizar alguns minutos para se levantar e se mover e fazer uma xícara de café, seria ótimo. Hehe. Obviamente, eu só forneço soluções viáveis e não tenho garantia de práticas recomendadas, e as discussões são bem -vindas.
1. Valor da data
Na era do antigo JDK, havia muitos códigos que usavam a classe java.util.date em termos de valores de data. No entanto, como a classe de data não é conveniente para obter a internacionalização, é recomendável usar a classe Java.util.Calendar para processamento de tempo e data a partir do JDK1.1. Não vou apresentar as operações da classe de data aqui. Vamos direto para o tópico e como usar a classe do calendário para obter a data e hora atuais.
Como o método do construtor do calendário é modificado por protegido, criaremos um objeto de calendário através do método GetInstance fornecido na API.
// Existem vários métodos sobrecarregados para criar calendário de objetos do calendário agora = calendário.getInstance (); // Padrão // Especifique o fuso horário e a região, ou você pode inserir apenas um dos parâmetros calendários agora = calendário.getInstance (fuso horário, loce);
Em seguida, podemos obter os vários parâmetros de tempo atuais através do objeto.
int ano = agora.get (calendário.year); //, ano atual int mês = agora.get (calendar.month) +; //, mês atual, adicione int dia = agora.get (calendar.date); //, data do dia atual = agora.getTime (); // Obtenha diretamente uma data da data do tipo
Para obter outros tipos de dados de tempo, você só precisa modificar os parâmetros agora.get (). Além dos três parâmetros acima, outros parâmetros comumente usados são os seguintes:
• calendar.day_of_month: data, igual ao calendário.date
• calendário.hour: 12 horas horas
• Calendar.hour_of_day: o número de horas em um sistema de 24 horas
• calendário.Minute: Minute
• Calendar.SECOND: segundos
• Calendar.Day_Of_Week: semanalmente
Além de obter dados de tempo, também podemos definir vários parâmetros de tempo através do objeto de calendário.
// Defina apenas o valor de um determinado campo // Public Final Void Set (campo int, int valor) agora.set (calendário.year); // definido ano, mês, dia, hora, mês, dia, hora, minuto, segundo // Public Final Void Conjunto (int ano, int mês, int date [, int hourOfday, int minute, int segundo]) agora.set (,, [,,,]); // Inscreva -se uma data da data do tipo diretamente // public Final Settime Settime (data) agora.set (data);
Perceber:
• Quando o parâmetro de tempo for definido, outros valores relevantes serão recalculados. Por exemplo, quando você define a data para o 11º, as alterações correspondentes serão feitas na semana.
• O mês que você recebe é mais 1. O mês real é o único.
• Na aula de calendário, o domingo é 1, segunda -feira é 2 e assim por diante.
2. Data de conversão
Depois de conversar sobre a data, vamos falar sobre a conversão da data. A conversão é geralmente a conversão mútua entre a data do tipo de data e a sequência do tipo string. Eu uso principalmente java.text.simpledateFormat para a operação de conversão.
SimpledateFormat sdf = new SimpleDateFormat ("AAAA-MM-DD HH: MM: SS"); tente {// date to string calendário calendário = calendar.getInstance (); Data data = calendário.gettime (); String dateSTringParse = sdf.format (data); // String até a data da String DATEstring DATEstring = "- ::"; Data dateParse = sdf.parse (DATEstring); } catch (parseException e) {e.printStackTrace (); }Perceber:
• O formato de conversão deve ser especificado ao criar um objeto SimpleDateFormat.
• O formato de conversão é sensível ao minúsculas, a AAA representa o ano, MM representa o mês, DD representa a data, HH representa hora em 2011, HH representa hora em 1011, mm representa minuto e SS representa segundos.
3. Adição de data e subtração
De um modo geral, faremos duas adições e operações de subtração nas datas:
• Com base em uma data, calcule as datas antes/depois, antes/depois ou antes/depois ou antes e depois de outras unidades de tempo.
// calcular calendário agora = calendar.getInstance (); agora.add (calendário.year,); // após o ano do horário atual agora.Add (calendário.Year, -); // Antes do ano do horário atual // Calcule o calendário SpecialDate = calendar.getInstance (); SpecialDate.SetTime (Data); // Observe que o valor do SpecialDate é alterado para uma data específica specialDate.add (calendário.year); // após o ano do tempo específico SpecialDate.add (calendário.year, -); // antes do ano do horário específico
Observe que o método Add do objeto do calendário é usado. Você pode alterar o calendário.
• Calcule o intervalo entre duas vezes, por exemplo, quantos dias existem agora em 1º de janeiro de 2016.
SimpledateFormat sdf = new SimpleDateFormat ("AAAA-MM-DD HH: MM: SS"); String dateString = "- ::"; Calendário calendário = calendário.getInstance (); long nowdate = calendar.gettime (). gettime (); //Date.gettime () Obtenha a data do milissegund Tente {long specialDate = sdf.parse (DATEstring) .gettime (); Long Betweendate = (SpecialDate - NowDate) / ( * * *); // Calcule quantos dias de intervalo, divida -o pela fórmula de conversão de milissegundos em system.out.print (betweendate); } catch (parseException e) {e.printStackTrace (); } 4. Comparação de data
Olhando através do meu código anterior, descobri que, sempre que executar uma operação de comparação de data, primeiro converterei a data em uma string no formato "AAYYYMMDD", depois converterei a string em um valor e comparará o tamanho do valor. Haha, é uma operação de comparação simples, mas é preciso mais de uma dúzia de linhas de código para escrever, o que é um pouco insuportável. Agora temos que falar sobre a postura de comparação de data correta.
Geralmente, existem dois métodos para comparação de data, que são comuns para java.util.date ou java.util.calendar. Um é comparar com o método anterior () através do APHUM (), e o outro é o método compareto () através do método comparisonto ().
SimpledateFormat Sdf = new SimpleDateFormat ("AAAA-MM-DD HH: MM: SS"); String DATEstring_01 = "2016-01-01 11:11:11"; String DATEstring_02 = "2016-01-02 11:11"; tentativa {date_01 = sdf.per. Data date_02 = sdf.parse (DATestring_02); System.out.println (date_01.before (date_02)); // true, quando Date_01 é menor que Date_02 quando for verdadeiro, caso contrário, é false System.out.println (date_02.after (date_01)); // Verdadeiro, quando o Date_02 é maior que o Date_01, é verdade, caso contrário, é false System.out.println (date_01.compareto (date_02)); // -1, quando Date_01 é menor que Date_02, é -1 System.out.println (DATE_02.COMPARETO (DATE_01)); // 1, quando o Date_02 é maior que o Date_01, é 1 System.out.println (DATE_02.COMPARETO (DATE_02)); // 0, quando duas datas são iguais, é 0} Catch (parseException e) {e.printStackTrace ();}O exposto acima é a descrição completa das operações de data comum (valor, conversão, adição e subtração, comparação) em Java apresentado a você neste artigo. Espero que gostem.