O Java 8 adicionou interfaces LocalDate e Localtime. Por que você precisa desenvolver um novo conjunto de APIs que lidam com datas e horários? Porque o antigo java.util.date é realmente difícil de usar.
Java.util.date O mês começa a partir de 0 de janeiro, 0 de dezembro é 11, é anormal! Java.Time.Localdate foi alterado para enum por meses e semana, por isso é impossível usá -lo incorretamente.
Nem java.util.Date nem SimpleDateFormatter são seguros de threads, enquanto LocalDate e Localtime são os mesmos da sequência mais básica e não são apenas seguros de threads, mas também não podem ser modificados.
java.util.date é uma "interface universal" que contém datas, tempo e milissegundos. Se você deseja usar apenas java.util.date para armazenar datas ou apenas armazenar tempo, só você sabe quais partes dos dados são úteis e quais partes dos dados não são úteis. No novo Java 8, as datas e os horários são claramente divididos em LocalDate e Localtime. LocalDate não pode conter tempo e o LocalTime não pode conter datas. Obviamente, o LocalDateTime pode incluir a data e a hora.
A razão pela qual a nova interface é melhor é que ela leva em consideração a operação de data e hora, e muitas vezes acontece ao avançar ou para trás por alguns dias. O uso de java.util.date com calendário requer muito código para gravar, e os desenvolvedores comuns podem não ser capazes de escrevê -lo corretamente.
LocalDate
Vamos ver como usar o novo LocalDate:
// Obtenha a data atual: LocalDate Today = localDate.now (); //-> 2014-12-24 // Obtenha a data de acordo com o ano, mês e dia, dezembro é 12: LocalDate crisismas = localDate.of (2014, 12, 25); //-> 2014-12-25 // Obtenha a data atual de acordo com a String: LocalDate endoffeb = localDate.parse ("2014-02-28"); // Verificar estritamente de acordo com a ISO yyyy-mm-dd, 02 não pode ser escrito como 2. É claro, também existe um método de sobrecarga que permite definir o formato LocalDate.parse ("2014-02-29"); // Data inválida não pode ser aprovada: DATETIMEPARSEEXCECTIMENTO: Data inválida
A conversão de data é frequentemente encontrada, como:
// Tome o primeiro dia deste mês: LocalDate primeiro diafthismOnth = Today.with (temporaladjusters.firstdayofmonth ()); // 2014-12-01 // Tome o segundo dia deste mês: LocalDate SecondDayofthismOnth = Today.withdayofmonth (2); // 2014-12-02 // Tome o último dia deste mês e não precisa mais calcular se são 28, 29, 30 ou 31: LocalDate LastDayfthismOnth = Today.with (temporaladjusters.LastDayofmonth ()); // 2014-12-31 // Leve no dia seguinte: LocalDate Firstdayof2015 = LastDayofthismOnth.PlusDays (1); // Torna-se 2015-01-01 // Tome a primeira segunda-feira de janeiro de 2015, e esse cálculo usa o calendário para matar muitas células cerebrais: LocalDate FirstMONDAYOF2015 = LOCALDATE.PARSE ("2015-01-01"). // 2015-01-05 LocalTime
LocalTime contém apenas tempo. Como posso representar apenas o tempo com java.util.date antes? A resposta é, fingir ignorar a data.
Localtime contém milissegundos:
LocalTime agora = localTime.now (); // 11: 09: 09.240
Você pode querer limpar os milissegundos:
LocalTime agora = localTime.now (). Comnano (0)); // 11:09:09
O tempo de construção também é muito simples:
LocalTime zero = localTime.of (0, 0, 0); // 00:00:00
LocalTime Mid = Localtime.parse ("12:00:00"); // 12:00:00
O tempo também é reconhecido no formato ISO, mas os três formatos a seguir podem ser identificados:
• 12: 00
• 12: 01: 02
• 12: 01: 02.345
JDBC
O mais recente mapeamento JDBC associará o tipo de data do banco de dados ao novo tipo de Java 8:
SQL -> Java
--------------------------------------
Data -> LocalDate
Tempo -> LocalTime
Timestamp -> LocalDateTime
Nunca haverá mais casos em que algumas partes da data ou hora sejam mapeadas para java.util.Tate onde alguma parte da data ou hora é 0.
O exposto acima é o método de manuseio de datas e tempo em Java 8, apresentado a você pelo editor. Espero que seja útil para você. Se você tiver alguma dúvida, deixe -me uma mensagem e o editor responderá a você a tempo. Muito obrigado pelo seu apoio ao site wulin.com!