1. LocalDateTimeklasse

De LocalDateTimeklasse combineert de mogelijkheden van de klassen LocalDateen LocalTime: het slaat zowel een datum als een tijd op. De objecten zijn ook onveranderlijk en de methoden zijn vergelijkbaar met die van de klassen LocalDateen LocalTime.

De huidige datum en tijd ophalen

Alles is zoals je zou verwachten: we gebruiken de now()methode. Voorbeeld:

Code Console-uitvoer
LocalDateTime time = LocalDateTime.now();
System.out.println("Now = " + time);

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

Wanneer ze op het scherm worden weergegeven, worden de datum en tijd gescheiden door de letter T.

Een specifieke datum en tijd krijgen

Zoals te verwachten, is alles vergelijkbaar met de klassen LocalDateen LocalTime- we gebruiken de of()methode:

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

Ten eerste zijn er parameters die de datum specificeren in dezelfde notaties als in de LocalDateklas. Dan zijn er parameters die de tijd specificeren in dezelfde formaten als in de LocalTimeklas. Een lijst van alle varianten van de of()methode wordt hieronder gegeven:

methoden
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)

U kunt de datum direct of indirect instellen via LocalDateen LocalTimeobjecten:

Code
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);
Console-uitvoer
Now = 2019-02-22T10:05:38.465675100
Now = 2019-05-15T12:15

De LocalDateTimeklasse heeft methoden om elementen van een datum en/of tijd te verkrijgen. Ze weerspiegelen precies de methoden van de klassen LocalDateen LocalTime. We zullen ze hier niet herhalen.



2. Instantklasse

De makers van Java zijn ook de ouderwetse manieren niet vergeten.

De Date Time API bevat een Instant-klasse voor het werken met tijd die bedoeld is voor processen die plaatsvinden op computers. In plaats van uren, minuten en seconden gaat het om seconden, milliseconden en nanoseconden.

Deze klasse heeft twee velden die vertegenwoordigen:

  • het aantal seconden dat is verstreken sinds 1 januari 1970
  • een aantal nanoseconden

Is de les gemaakt voor ontwikkelaars? Ja. Daarom berekent het de tijd in Unix-tijd, die begint in het begin van 1970.

Je zou zelfs kunnen zeggen dat de Instantklasse een vereenvoudigde versie van de Dateklasse is, die alleen behoudt wat programmeurs nodig hebben.

U kunt een Instantobject op precies dezelfde manier verkrijgen als een LocalTimeobject:

Instant timestamp = Instant.now();

Waar timestampis een Instantvariabele en is een aanroep naar de statische methode van de klasse.Instant.now()now()Instant

Voorbeeld:

Code Console-uitvoer
Instant timestamp = Instant.now();
System.out.println(timestamp);

2019-02-22T08:42:42.234945300Z

U kunt ook een nieuw object maken met variaties op de of()methode door de tijd die is verstreken sinds 1 januari 1970 door te geven:

ofEpochMilli(long milliseconds)
U moet het aantal milliseconden doorgeven
ofEpochSecond(long seconds)
U moet het aantal seconden doorgeven
ofEpochSecond(long seconds, long nanos)
Je moet de seconden en nanoseconden doorgeven

Methoden beschikbaar op Instantobjecten

De klasse Instant heeft twee methoden die de waarden van zijn velden retourneren:

long getEpochSecond()
Aantal seconden dat is verstreken sinds 1 januari 1970
int getNano()
Nanoseconden.
long toEpochMilli()
Aantal milliseconden dat is verstreken sinds 1 januari 1970

Er zijn ook methoden om nieuwe Instantobjecten te maken op basis van een bestaande:

Instant plusSeconds(long)
Voegt seconden toe aan de huidige tijd
Instant plusMillis(long)
Voegt milliseconden toe
Instant plusNanos(long)
Voegt nanoseconden toe
Instant minusSeconds(long)
Trekt seconden af
Instant minusMillis(long)
Trekt milliseconden af
Instant minusNanos(long)
Trekt nanoseconden af

Voorbeelden:

Code Console-uitvoer
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