Jaka jest minimalna wartość daty w języku Java?Minimalna data w języku Java
Odpowiedz
Jeśli mówimy o java.util.Date
jako znacznika czasu można to zrobić
Date d = new Date(0L)
i widać to oznacza Pn sty 01 01:00:00 GMT 1970
Jak tulskiy wskazał możliwe jest przekazanie wartości ujemnej do konstruktora Date. Jeśli mamy to zrobić i użyć formatu daty, który obejmuje erę widzimy:
Date d = new Date(Long.MIN_VALUE);
DateFormat df = new SimpleDateFormat("EEE, d MMM yyyy G HH:mm:ss Z");
System.out.println(df.format(d));
Wyświetlanie: Sun, 02 grudnia 292269055 BC 16:47:04 +0000
Nie zapomnę tej daty konstruktora szczęśliwie akceptuje wartości ujemne.
Date date = new Date(Long.MIN_VALUE);
powraca
Sun Dec 02 22:47:04 BDT 292269055
Chyba że chodzi o godzinie Big Bang dinozaury :)
EDIT
Jako odpowiedź Martin Clayton można użyć klasy Kalendarz, aby sprawdzić era. To spowoduje wyświetlenie 0, co oznacza BCE:
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date(Long.MIN_VALUE));
System.out.println(calendar.get(Calendar.ERA));
Ale wydaje się, że jest to data w przyszłości (rok 292269055), a nie w przeszłości. Wydaje się, że parametr jest interpretowany jako wartość dodatnia. – Grodriguez
@Grodriguez - jaka jest era w tym roku? ;-) –
@Grodriguez: zobacz moją edycję, jest to wartość w przeszłości. –
To samo dotyczy klas kalendarza.
Spróbuj tego:
Date d = new Date(Long.MIN_VALUE);
System.out.println(d);
Zobaczysz:
Sun Dec 02 16:47:04 GMT 292269055
Ale domyślny format daty nie obejmuje Era - który jest BCE dla tej dacie.
Inne odpowiedzi mogą być poprawne, ale użyj przestarzałych klas.
java.time
Stare klasy date-time (java.util.Date/.Calendar itd.) Zostały wyparte przez java.time ramach wbudowany w Java 8 i późniejszych.
java.time zajęcia są inspirowane przez Joda-Time, zdefiniowane przez JSR 310, przedłużony przez ThreeTen-Extra projektu, back-przeniesiony do Java 6 & 7 projektem ThreeTen-Backport i dostosowany do Android w projekcie ThreeTenABP. Zobacz Tutorial.
Przez chwilę na osi czasu w UTC o rozdzielczości nanoseconds, użyj Instant
. Biorąc pod uwagę offset-from-UTC, użyj OffsetDateTime
.W przypadku time zone (przesunięcie + reguły dla anomalii) należy użyć ZonedDateTime
, ale ze względu na swój charakter nie ma określonego minimum, ani też ZoneId
. Aby uzyskać wartość tylko dla daty bez pory dnia i bez strefy czasowej, użyj LocalDate
. W przypadku wartości tylko dla pory dnia bez daty i bez strefy czasowej, użyj LocalTime
. W przypadku daty i godziny bez strefy czasowej użyj LocalDateTime
.
Instant.MIN
=-1000000000-01-01T00:00Z
OffsetDateTime.MIN
=-999999999-01-01T00:00:00+18:00
LocalDate.MIN
=-999999999-01-01
- =
00:00
LocalDateTime.MIN
=-999999999-01-01T00:00:00
Year.MIN_VALUE
=-999,999,999
ZoneOffset.MIN
=-18:00
(ale-12:00
w praktyce)
Uwaga: Bądź ostrożny przy użyciu tych wartości jako pewnego rodzaju flagi lub specjalnego znaczenia. Wiele innych bibliotek oprogramowania i baz danych może nie obsługiwać tych ekstremalnych wartości.
W przypadku flagi lub specjalnego znaczenia, na przykład niezerowej wartości "brak dostępnej wartości", sugeruję wybieranie dowolnej chwili, ale unikaj zbliżania się do tak ekstremalnych wartości, zarówno w tył, jak iw przód. Być może Unix epoch reference date, pierwszy moment 1970 roku w UTC, 1970-01-01T00: 00: 00Z. Zdefiniowane jako stała w Javie: Instant.EPOCH
Od Date
jest oznaczony jako przestarzałe, myślałem nie powinno być kolejny sposób aby obejść ten problem, więc spojrzał na niektóre z metod, i uważam, że ten sposób
Możesz również użyć Long.MIN_VALUE, w czasie, gdy to pisałem, nie szukałem go, a nawet/i nie pamiętałem go.
** Niepoprawnie: ** Klasa 'java.util.Date' jest * nie * przestarzała (ale powinna być). Niektóre z jego metod są przestarzałe, ale nie cała klasa.Ponadto ta odpowiedź nie zapewnia dużej wartości dla mojego umysłu. –
Po prostu sprawdzam ponownie i miałeś rację. niektóre z jego metody konstruktora i adn są, ale nie w całości – deadManN
- 1. R Obiekt serii ts() Data minimalna i maksymalna
- 2. Jak analizować negatywnie w języku Java w języku Java
- 3. Java Data Structures Reference
- 4. Minimalna blokada hashtable wątku?
- 5. Java Data do milliseconds
- 6. java różnica data puzzle
- 7. Klon() w języku Java
- 8. Transmisja UDP w języku Java
- 9. Migracja do wersji Java przestarzała Data method
- 10. Zgłaszanie tablicy macierzy bajtowych w języku Java
- 11. Kiedy data java się zwinie?
- 12. Serwis WWW Java, data xsd zamiast dateTime
- 13. Data JSON do daty Java?
- 14. Metoda ArrayList.toArray() w języku Java
- 15. Aplikacja tekstowa w języku Java
- 16. Biblioteka tłumaczeń w języku Java
- 17. Jak animacja w języku Java?
- 18. Kategoryzacja rekordów w języku Java
- 19. Przesuwanie kursora w języku Java
- 20. Klasa DataSet w języku Java?
- 21. Lista tablic w języku Java
- 22. Lista sortowania w języku Java
- 23. Odpowiednik debugowania w języku Java?
- 24. nazwa odpowiednika w języku Java
- 25. Klasa monitora w języku Java
- 26. Ciecz w języku Java/Scala
- 27. Wyjątek "nieporównywalny" w języku Java?
- 28. Fuzzy Data parsowania z Java
- 29. Zapytanie MongoDB według daty w języku Java
- 30. Parsowanie ciągów znaków JavaScript w języku Java
Co oznacza minimalna data? – qrtt1
możliwy duplikat [Java: Jakie/gdzie są wartości maksymalne i minimalne kalendarza gregoriańskiego?] (Http://stackoverflow.com/questions/2393016/java-what-where- is-the-maximum-andminimal- wartości-of-a-gregoriancalendar) –
Zobacz ten wątek http://stackoverflow.com/questions/2393016/java-what-where-are-the-maximum-andminimal-values-of-a-gregoriancalendar – sproketboy