Lavorare con le date in Java 8

Sommario
Lavorare con le date è sempre stato un punto di svolta nella carriera dei programmatori. Ciò è in parte dovuto al fatto che nelle versioni precedenti di Giava era un po' confuso e incoerente. Tuttavia, nella nuova versione a API che ci permette di ottenere il massimo dalla lingua con metodi più chiari e facili da usare.
Questo rende lavorare con formati di data e ora in Giava non essere una tortura. Per questo dobbiamo studiare le nuove forme e possibilità che il linguaggio ci offre, con l'obiettivo di trasformare uno dei punti che genera più confusione, in qualcosa che padroneggiamo correttamente.
Per semplificare il lavoro, il team di sviluppo di Giava ci ha fornito una serie di metodi comuni che possiamo usare, sia quando lavoriamo con date, come quando lavoriamo con ore. Ciò riduce lo sforzo di apprendimento a causa del comportamento simile per entrambi i tipi di oggetti.
Elencheremo di seguito alcuni dei metodi che risaltano di più insieme a una piccola spiegazione di cosa possiamo usarli, con questo possiamo avere un'idea generale quando andremo più avanti alla parte pratica.
inQuesto metodo ci permette di creare una combinazione dell'oggetto che lo invoca con un altro oggetto.
formatoCi consente di utilizzare alcuni parametri per produrre come risultato una data o un'ora con un formato specifico di cui abbiamo bisogno.
ottenereCi permette di ottenere un elemento che specifichiamo.
èCi permette di validare se un oggetto è del tipo con cui effettuiamo il confronto.
piùCi dà la possibilità di aggiungere un'aggiunta all'oggetto che lo invoca e ne restituisce una copia con il valore già aggiunto.
aCi permette di effettuare una conversione da un tipo all'altro.
Ora con questa conoscenza possiamo passare ad altre questioni all'interno di questo stesso argomento di date e orari in Giava.
Come abbiamo spiegato le forme utilizzate in Giava Ora sono cambiati per la nuova versione, ecco perché per ripetere gli esempi che daremo abbiamo bisogno della versione 8 del kit di sviluppo del linguaggio, altrimenti riceveremo un errore come il seguente:

Chiarito il punto, vediamo di seguito cosa dobbiamo fare per ottenere le informazioni del data e ora correnti in Giava.
Per questo creeremo una classe in cui istanziare oggetti del tipo Data locale, Ora localeLocalDateTime. Ciascuno di essi ci darà, rispettivamente, la data corrente, l'ora corrente e la data e l'ora correnti.
Questo è molto utile in casi come registri di sistema, dove dobbiamo catturare il momento preciso in cui viene intrapresa un'azione o si verifica un evento che ci interessa registrare. Per raggiungere l'obiettivo possiamo realizzare un codice simile al seguente:
 import java.time.*; public class CurrentDate {public static void main (String [] args) {LocalDate currentDate = LocalDate.now (); System.out.println (currentDate); LocalTime currentTime = LocalTime.now (); System.out.println (currentTime); LocalDateTime now = LocalDateTime.now (); System.out.println (ora); }} 

Come possiamo vedere, non facciamo altro che dichiarare i nostri oggetti dei suddetti tipi e assegnare loro il valore che viene restituito con il metodo Ora (), che è colui che è realmente incaricato di fornire la data e l'ora correnti, quindi ci preoccupiamo solo di stampare ciascuno degli oggetti dichiarati.
ImportanteÈ molto importante includere il pacchetto java.time nella sua interezza in modo da poter accedere a tutte le funzioni che stiamo utilizzando, inoltre se abbiamo dei dubbi nella documentazione ufficiale possiamo trovare maggiori dettagli sulle opzioni dello stesso.
Vediamo come si presenta l'esecuzione del nostro programma:

Un altro aspetto che dobbiamo sempre tenere in considerazione è il modo di visualizzare le informazioni. In termini di date abbiamo molti modi, tuttavia alcuni sono più convenienti di altri in alcune situazioni. Questo la maggior parte delle volte ci porta a eseguire operazioni aggiuntive che ci fanno scrivere ulteriori righe di codice, che in Java 8 non è più così complesso.
A seconda dell'applicazione che stiamo sviluppando, vorremo mostrare il mese con il suo numero sul calendario o con il suo nome, ma il nome può essere completo o abbreviato così come il giorno o l'anno, tutto questo ci dà un numero molto ampio di opzioni, tutte ugualmente valide. Per risolvere questo problema possiamo usare il formattatore di data.
Per formattare le date abbiamo dei caratteri jolly o parametri che ci permettono di ottenere i valori spiegati nel paragrafo precedente. Vediamo quali sono i più importanti.
  • , ci permette di accedere all'anno in formato a quattro o due cifre (2014 o 14).
  • D, ci permette di ottenere il numero del giorno dell'anno (225).
  • D, Contrariamente al precedente, restituisce il numero del giorno del mese in questione (27).
  • l, ci aiuta ad ottenere il mese dell'anno in forma numerica, m ci dà il mese nel testo.
  • h, ci dà il tempo.
  • S, ci dà i secondi.
  • m, ci permette di ottenere i verbali.
  • a, ci dà l'am o il pm dell'ora.
  • z, ci permette di accedere al nome del fuso orario.
Poiché conosciamo i parametri di base del formato, proveremo un nuovo esercizio, nel codice seguente faremo alcuni formati, prima di tutto otterremo la data corrente e la convertiremo nel formato anno mese giorno con barre al posto dei trattini, quindi analizzeremo una data statica che proviene da una stringa con lo stesso formato e infine mostreremo una data completa includendo se è am o pm, per utilizzare i caratteri jolly che hanno spiegato in precedenza. Vediamo il codice corrispondente:
 import java.time.*; import java.time.format.*; public class DateFormatter {public static void main (String [] args) {DateTimeFormatter data formattata = DateTimeFormatter.ofPattern ("aaaa / LL / gg"); System.out.println (FormattedDate.format (LocalDate.now ())); System.out.println (LocalDate.parse ("2014/11/15", Data formattata)); DateTimeFormatter timezone = DateTimeFormatter.ofPattern ("d MMMM, aaaa h: mm a"); System.out.println (ZonedDateTime.now (). Format (fuso orario)); }} 

La prima cosa che possiamo evidenziare è che dobbiamo importare entrambi i pacchetti java.time con tutte le sue classi come pacchetto java.time.format anche con tutte le sue classi. E' possibile fare l'esercizio importando le classi specifiche, ma lo lasciamo come compito a casa, anche così hanno il compito di vedere la documentazione ufficiale.
Quindi vediamo che creiamo un oggetto del tipo DateTimeFormatter e usiamo il metodo diPattern () che accetta i caratteri jolly specificati, vediamo che posizioniamo i caratteri jolly in duplicato come aaaa per ottenere le quattro cifre dell'anno in corso o anche mm per ottenere le due cifre del verbale.
Infine stampiamo ciascuna delle date con i loro formati e otteniamo quanto segue quando eseguiamo il nostro programma:

È qui che possiamo osservare tutti i cambiamenti che abbiamo apportato al modo di formattare le date, con questo possiamo dargli maggiore significato e leggibilità sia a livello umano che per i motori di Banca dati Che cosa MySQL devi ricevere la data predefinita in formato aaaa-LL-gg.
Un altro uso che possiamo dare alle nuove classi di data e ora di Giava è poter utilizzare date che provengono da una stringa di testo, queste possono essere create da un utente, provengono da un file di testo, ecc. Ma l'importante è che dobbiamo manipolarli e per questo possiamo usare tutti gli strumenti che abbiamo a portata di mano.
Vediamo nel codice seguente come, sfruttando quanto visto, possiamo apportare modifiche ad una data da una stringa di testo.
 import java.time.*; import java.time.format.*; public class StaticDate {public static void main (String [] args) {String StartDate = "1906-12-31"; LocalDate takeDate = LocalDate.parse (startDate); System.out.println ("Data:" + TakenDate); Stringa dateStartTime = "1906-12-31T12: 05"; LocalDateTime TakenDateTime = LocalDateTime.parse (TimeInitialDate); System.out.println ("Data / Ora:" + dateTakTime); DateTimeFormatter df = DateTimeFormatter.ofPattern ("dd MMM uuuu"); System.out.println (TakenDate + "Con nuovo formato:" + df.format (TakenDate)); }} 

Nel codice vediamo come creiamo una data iniziale in una stringa di testo, quindi con un oggetto del tipo Data locale usiamo il metodo Analizzare per incorporare la stringa di testo in un oggetto di tipo data, quindi stampiamo l'oggetto e vediamo che se ha preso la data correttamente, ripetiamo la stessa procedura ma usando data e ora con LocalDateTime.
Infine, prendiamo il nostro primo oggetto creato e gli applichiamo un nuovo formato, confermando così che siamo stati in grado di inserire e manipolare una data che abbiamo stabilito da una stringa di testo. Vediamo come appare quando eseguiamo il nostro programma:

Con questo finiamo questo tutorial, abbiamo imparato a lavorare con le date in Giava utilizzando i miglioramenti nelle classi che la nuova versione incorpora, che è Java 8Questo può essere utilizzato per molte applicazioni a livello di sistema e anche per le interfacce utente.Ti è piaciuto e hai aiutato questo Tutorial?Puoi premiare l'autore premendo questo pulsante per dargli un punto positivo
wave wave wave wave wave