Quelle est la valeur minimale de Java?Date minimale en Java
Répondre
Si vous parlez java.util.Date
en tant que timestamp vous pouvez le faire
Date d = new Date(0L)
et vous verrez ce qui représente Jeu 1 janvier 01:00:00 GMT 1970
Comme tulskiy a souligné il est possible de passer une valeur négative au constructeur Date. Si nous faisons cela et utiliser un format de date qui inclut l'époque dans laquelle nous pouvons voir:
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));
affiche: Dim 2 Déc 292269055 BC 16:47:04 +0000
Ne pas oublier que le constructeur Date accepte volontiers les valeurs négatives.
Date date = new Date(Long.MIN_VALUE);
retours
Sun Dec 02 22:47:04 BDT 292269055
Je suppose que c'est à peu près le temps de Big Bang dinosaures :)
EDIT
Comme martin clayton répondu, vous pouvez utiliser la classe Calendrier pour vérifier l'ère. Cela produira 0 qui signifie BCE:
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date(Long.MIN_VALUE));
System.out.println(calendar.get(Calendar.ERA));
Mais cela semble être une date dans le futur (année 292269055), pas dans le passé. Semble que le paramètre est interprété comme une valeur positive. – Grodriguez
@Grrriguez - quelle est l'époque de cette année cependant? ;-) –
@Grrriguez: voir mon édition, c'est une valeur dans le passé. –
C'est la même chose que pour les classes de calendrier.
Essayez ceci:
Date d = new Date(Long.MIN_VALUE);
System.out.println(d);
Vous verrez:
Sun Dec 02 16:47:04 GMT 292269055
Mais le format de date par défaut ne comprend pas l'époque - qui est BCE pour cette date.
Les autres Réponses peuvent être correctes mais utiliser des classes obsolètes.
java.time
Les anciennes classes de date-heure (java.util.Date/.Calendar etc.) ont été supplanté par le cadre java.time construit en Java 8 et versions ultérieures.
Les classes java.time sont inspirées par Joda-Time, définie par JSR 310, prolongé par le projet ThreeTen-Extra, back-porté à Java 6 7 & par le projet ThreeTen-Backport, et adapté à Android dans le projet ThreeTenABP. Voir Tutorial.
Pour un instant sur la chronologie dans UTC avec une résolution de nanoseconds, utilisez Instant
. Étant donné un offset-from-UTC, utilisez OffsetDateTime
.Pour un time zone (décalage + règles pour les anomalies), utilisez ZonedDateTime
, mais par sa nature n'a pas de minimum défini, ni ZoneId
. Pour une valeur de date uniquement sans heure et sans fuseau horaire, utilisez LocalDate
. Pour une valeur d'heure unique sans date et sans fuseau horaire, utilisez LocalTime
. Pour la date et l'heure sans fuseau horaire, utilisez 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
(mais-12:00
dans la pratique)
Attention: Méfiez-vous d'utiliser ces valeurs comme une sorte de sens drapeau ou spécial. De nombreuses autres bibliothèques de logiciels et bases de données peuvent ne pas prendre en charge ces valeurs extrêmes. Pour un drapeau ou une signification spéciale comme une valeur non-nulle "non disponible", je suggère de choisir un moment arbitraire, mais évitez d'aller à ces extrêmes extrêmes soit en arrière ou en avant dans le temps. Peut-être le Unix epoch reference date, le premier moment de 1970 en UTC, 1970-01-01T00: 00: 00Z. Défini comme une constante en Java: Instant.EPOCH
Depuis Date
est marqué comme Obsolète, je pensais qu'il devrait y avoir une autre façon de contourner ce problème, donc je regardais quelques-unes des méthodes, et je l'ai trouvé cette façon
Vous pouvez aussi utiliser Long.MIN_VALUE, au moment où j'ai écrit ceci, je ne l'avais pas recherché, et même/je ne m'en souvenais pas.
** Incorrect: ** La classe 'java.util.Date' n'est pas obsolète (mais devrait l'être). Plusieurs de ses méthodes sont obsolètes mais pas la classe entière.En outre, cette réponse ne fournit pas beaucoup de valeur à mon esprit. –
Je viens de vérifier à nouveau, et vous aviez raison. certains de son constructeur sont la méthode ADN, mais pas wholy – deadManN
Que signifie la date minimale? – qrtt1
duplication possible de [Java: quoi/où sont les valeurs maximum et minimum d'un GregorianCalendar?] (Http://stackoverflow.com/questions/2393016/java-what-where-are-the-maximum-and-minimum- values-of-a-gregoriancalendar) –
Voir ce fil http://stackoverflow.com/questions/2393016/java-what-where-are-the-maximum-and-minimum-values-of-a-gregoriancalendar – sproketboy