tl; dr
Instant.now()
.plusSeconds(TimeUnit.MINUTES.toSeconds(5))
.toString()
2017-01-23T03: 11: 53.763Z
Szczegóły
innych odpowiedzi są przestarzałe jak Java 8. kłopotliwe starych klas date-time są teraz Legacy, wyparta przez java klasy .time.
Klasa Instant
reprezentuje moment na osi czasu w UTC z rozdzielczością nanoseconds (do dziewięciu (9) cyfr ułamka dziesiętnego).
Instant instant = Instant.now();
Ta klasa może wykonywać obliczenia matematyczne, takie jak dodanie liczby sekund. Możemy użyć wyliczenia TimeUnit
, aby ukryć nasze pożądane pięć minut w ciągu kilku sekund.
long seconds = TimeUnit.MINUTES.toSeconds(5);
Instant fiveMinutesLater = instant.plusSeconds(seconds);
Aby wygenerować ciąg w standardowym formacie ISO 8601, zadzwoń toString
.
String output = fiveMinutesLater.toString();
Aby wygenerować ciągi w innych formatach, używać klasy ZonedDateTime
i DateTimeFormatter
klasę. Przeszukaj przepełnienie stosu w wielu przykładach i dyskusjach na temat tych klas.
O java.time
Ramy java.time jest wbudowana w Java 8 i późniejszych. Klasy te zastępują kłopotliwe stare klasy z datami, takie jak java.util.Date
, Calendar
, & SimpleDateFormat
.
Projekt Joda-Time, teraz w maintenance mode, zaleca migrację do klas java.time. Aby uzyskać więcej informacji, zobacz
. I wyszukaj Stack Overflow dla wielu przykładów i objaśnień. Specyfikacja to JSR 310.
Gdzie można uzyskać lekcje java.time?
- Java SE 8 i SE 9 a później
- wbudowanej.
- Część standardowego interfejsu API języka Java z pakietem implementacji.
- Java 9 dodaje kilka drobnych funkcji i poprawek.
- Java SE 6 i SE 7
- Znaczna część funkcjonalności java.time jest back-przeniesiony do Java 6 & 7 w ThreeTen-Backport.
- Android
Projekt ThreeTen-Extra rozciąga java.time z dodatkowych zajęć. Ten projekt jest poligonem wskazującym na możliwe przyszłe dodatki do java.time. Możesz znaleźć tutaj kilka użytecznych klas, takich jak Interval
, YearWeek
, YearQuarter
i more.
Perfect, dzięki Marko – Scott