1. LocalDateTimeclasse

La LocalDateTimeclasse combina le capacità delle classi LocalDatee LocalTime: memorizza sia una data che un'ora. Anche i suoi oggetti sono immutabili ei suoi metodi sono simili a quelli delle classi LocalDatee LocalTime.

Ottenere la data e l'ora correnti

Tutto è come ti aspetteresti qui: usiamo il now()metodo. Esempio:

Codice Uscita console
LocalDateTime time = LocalDateTime.now();
System.out.println("Now = " + time);

Now = 2019-02-22T09:49:19.275039200

Quando vengono visualizzate sullo schermo, la data e l'ora sono separate dalla lettera T.

Ottenere una data e un'ora specifiche

Non sorprende che tutto sia simile alle classi LocalDatee LocalTime: usiamo il of()metodo:

... = LocalDateTime.of(year, month, day, hours, minutes, seconds);

Innanzitutto, ci sono parametri che specificano la data negli stessi formati della LocalDateclasse. Poi ci sono parametri che specificano l'ora negli stessi formati della LocalTimeclasse. Di seguito è riportato un elenco di tutte le varianti del of()metodo:

Metodi
of (int year, int month, int day, int hour, int minute)
of (int year, int month, int day, int hour, int minute, int second)
of (int year, int month, int day, int hour, int minute, int second, int nano)
of (int year, Month month, int day, int hour, int minute)
of (int year, Month month, int day, int hour, int minute, int second)
of (int year, Month month, int day, int hour, int minute, int second, int nano)
of (LocalDate date, LocalTime time)

Puoi impostare la data direttamente o indirettamente tramite LocalDatee LocalTimeoggetti:

Codice
LocalDate date = LocalDate.now();
LocalTime time = LocalTime.now();
LocalDateTime current = LocalDateTime.of(date, time);
System.out.println("Now = " + current);

LocalDateTime date = LocalDateTime.of(2019, Month.MAY, 15, 12, 15, 00);
System.out.println("Now = " + date);
Uscita console
Now = 2019-02-22T10:05:38.465675100
Now = 2019-05-15T12:15

La LocalDateTimeclasse ha metodi per ottenere elementi di una data e/o un'ora. Rispecchiano esattamente i metodi delle classi LocalDatee LocalTime. Non li ripeteremo qui.



2. Instantclasse

Anche i creatori di Java non hanno dimenticato i modi della vecchia scuola.

L'API Date Time include una classe Instant per lavorare con l'ora destinata ai processi che si verificano nei computer. Invece di ore, minuti e secondi, si tratta di secondi, millisecondi e nanosecondi.

Questa classe ha due campi che rappresentano:

  • il numero di secondi trascorsi dal 1 gennaio 1970
  • un certo numero di nanosecondi

La classe è stata creata per gli sviluppatori? SÌ. Ecco perché calcola il tempo in Unix-time, che inizia all'inizio del 1970.

Si potrebbe anche dire che la Instantclasse è una versione semplificata della Dateclasse, che conserva solo ciò di cui i programmatori hanno bisogno.

Puoi ottenere un Instantoggetto esattamente nello stesso modo di un LocalTimeoggetto:

Instant timestamp = Instant.now();

Dove timestampè una Instantvariabile ed è una chiamata al metodo statico della classe.Instant.now()now()Instant

Esempio:

Codice Uscita console
Instant timestamp = Instant.now();
System.out.println(timestamp);

2019-02-22T08:42:42.234945300Z

Puoi anche creare un nuovo oggetto usando variazioni del of()metodo passando nel tempo trascorso dal 1 gennaio 1970:

ofEpochMilli(long milliseconds)
Devi passare il numero di millisecondi
ofEpochSecond(long seconds)
Devi passare il numero di secondi
ofEpochSecond(long seconds, long nanos)
Devi passare i secondi e i nanosecondi

Metodi disponibili sugli Instantoggetti

La classe Instant ha due metodi che restituiscono i valori dei suoi campi:

long getEpochSecond()
Numero di secondi trascorsi dal 1° gennaio 1970
int getNano()
Nanosecondi.
long toEpochMilli()
Numero di millisecondi trascorsi dal 1° gennaio 1970

Esistono anche metodi per creare nuovi Instantoggetti basati su uno esistente:

Instant plusSeconds(long)
Aggiunge secondi all'ora corrente
Instant plusMillis(long)
Aggiunge millisecondi
Instant plusNanos(long)
Aggiunge nanosecondi
Instant minusSeconds(long)
Sottrae i secondi
Instant minusMillis(long)
Sottrae i millisecondi
Instant minusNanos(long)
Sottrae i nanosecondi

Esempi:

Codice Uscita console
Instant timestamp = Instant.now();
System.out.println(timestamp);

long n = timestamp.toEpochMilli();
Instant time = Instant.ofEpochMilli(n);
System.out.println(time);

2019-02-22T09:01:20.535344Z



2019-02-22T09:01:20.535Z