Quelles sont les valeurs maximum et minimum d'un GregorianCalendar? Sont-ils dans une constante comme Integer.MAX_VALUE, ou peut-être GregorianCalendar.get (BLAH)? En quelques mots, comment créer une instance GregorianCalendar avec une valeur min/max?Java: Quelles sont les valeurs maximales et minimales d'un calendrier grégorien?
Répondre
Cela devrait fonctionner:
GregorianCalendar maxgc = new GregorianCalendar();
maxgc.setTime(new Date(Long.MAX_VALUE));
GregorianCalendar mingc = new GregorianCalendar();
mingc.setTime(new Date(Long.MIN_VALUE));
Vous pouvez essayer d'appeler Calendar.getMinimum() pour chaque type de champ (par exemple année, mois, etc.), puis définissez les valeurs minimales sur les types de champs correspondants. Cela vous donnerait le calendrier minimum. Je ne sais pas s'il existe un moyen plus rapide de le faire.
Je pris la suggestion de joekutner et il a couru avec:
GregorianCalendar gCal = new GregorianCalendar();
gCal.setTime(new Date(Long.MIN_VALUE));
System.out.println("Min Date is " + gCal.getTime() + " " + gCal.get(Calendar.ERA));
gCal.set(Calendar.SECOND, 3);
System.out.println("Min Date less 1 second is " + gCal.getTime() + " " + gCal.get(Calendar.ERA));
gCal.setTime(new Date(Long.MAX_VALUE));
System.out.println("Max Date is " + gCal.getTime() + " " + gCal.get(Calendar.ERA));
Min Date is Sun Dec 02 16:47:04 GMT 292269055 0
Min Date less 1 second is Sun Aug 17 07:12:54 GMT 292278994 1
Max Date is Sun Aug 17 07:12:55 GMT 292278994 1
Ce qui montre le minimum et le maximum, et entre eux une indication de ce qui se passe si vous essayez de passer à la seconde avant le minimum - vous envelopper.
C'était la version 1.6.0_17.
Wow c'est intéressant – WaelJ
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 moment sur la ligne de temps en 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 défini min/max, ni ZoneId
. Pour une valeur de date uniquement sans heure et sans fuseau horaire, utilisez LocalDate
. Pour une valeur de l'heure de la journée sans date et sans fuseau horaire, utilisez LocalTime
. Pour la date et l'heure sans fuseau horaire, utilisez LocalDateTime
.
Toutes les constantes prédéfinies sont les suivantes.
Instant.MIN
=-1000000000-01-01T00:00Z
Instant.MAX
=1000000000-12-31T23:59:59.999999999Z
OffsetDateTime.MIN
=-999999999-01-01T00:00:00+18:00
OffsetDateTime.MAX
=+999999999-12-31T23:59:59.999999999-18:00
LocalDate.MIN
=-999999999-01-01
LocalDate.MAX
=+999999999-12-31
LocalTime.MIN
=00:00
LocalTime.MAX
=23:59:59.999999999
LocalDateTime.MIN
=-999999999-01-01T00:00:00
LocalDateTime.MAX
=+999999999-12-31T23:59:59.999999999
Year.MIN_VALUE
=-999,999,999
Year.MAX_VALUE
=+999,999,999
ZoneOffset.MIN
=-18:00
(mais-12:00
dans la pratique)ZoneOffset.MAX
=+18:00
(mais+14:00
dans la pratique)
- 1. Calcul des valeurs maximales et minimales dans un tableau
- 2. Python: comment puis-je trouver les valeurs minimales et maximales dans les éléments de sous-matrices?
- 3. Calendrier non-grégorien avec jQuery FullCalendar
- 4. Java - Conversion d'un datetime en heure de calendrier grégorien (date)
- 5. Calendrier Grégorien - tests basés sur des documents
- 6. Sélectionner plusieurs valeurs maximales
- 7. Quelles sont les dimensions maximales d'un bitmap pouvant être chargé et affiché dans Flash?
- 8. Pourquoi les valeurs maximales pour la saturation et la teinte sont respectivement 240 et 239?
- 9. Quelles sont les valeurs SPAlert EventTypeBitmask valides?
- 10. Java P2P - quelles sont les options disponibles?
- 11. Quelles sont les alternatives pour l'authentification Java?
- 12. Quelles sont les classes système de Java?
- 13. Quelles sont les options Java RPC efficaces et sécurisées?
- 14. Quelles sont les différences entre LLVM et java bytecode?
- 15. UIView. Quelles sont les dimensions maximales des limites que je peux utiliser?
- 16. Quelles sont les dépendances minimales de Spring pour l'injection de dépendances?
- 17. Quelles sont les exigences minimales à avoir, pour dire qu'une exception personnalisée est sérialisable?
- 18. quelles sont les exigences minimales pour l'application iphone pour être considéré comme localisé
- 19. Quelles sont les autorisations de sécurité minimales pour un site Web dans ASP.NET?
- 20. Quelles sont les autorisations utilisateur minimales requises pour installer un service Windows?
- 21. Définition des limites maximales et minimales à l'aide de l'API Google Maps
- 22. Automake: quelles sont les valeurs valides pour * _la_LDFLAGS dans Makefile.am?
- 23. Quelles sont toutes les valeurs possibles pour SQLException.getSQLState?
- 24. Quelles sont les utilisations intéressantes pour les agents Java?
- 25. Quelles sont les valeurs valides de l'expression (uninitialized_bool? 1: 2)?
- 26. Quelles sont les valeurs prises par Camera.Parameters.set ("taille de l'image",?)?
- 27. Dispositions et tailles minimales
- 28. Objets du calendrier de correspondance dans Java?
- 29. Java: Question de conception - paires minimales entre les ensembles
- 30. Quelles sont les différentes techniques de mémoisation en Java?
Malheureusement votre la solution ne fonctionne pas. Après mingc.setTime (new Date (Long.MIN_VALUE)), vous obtenez: migc.get (Calendar.YEAR) == 292269055 ou sth comme ceci. Cela ne me semble pas minime :-). – pajton
Merci = D Je n'utilise que ces valeurs pour la comparaison, donc je vais bien, mais pour d'autres cela peut être digne de mention. À partir de setTime() documentation: Remarque: L'appel de setTime() avec Date (Long.MAX_VALUE) ou Date (Long.MIN_VALUE) peut générer des valeurs de champ incorrectes à partir de get(). – WaelJ
pajton, vérifier:
migc.get(Calendar.ERA)
0 signifie BC 1 signifie AD Donc année 292.269.055 correspond à 292.269.055 BC – WaelJ