Malheureusement, votre solution ne fonctionne pas. Après mingc.setTime(new Date(Long.MIN_VALUE)), vous obtenez: migc.get(Calendar.AN) == 292269055 ou qqch comme ça. Cela ne ressemble pas à une minute à moi:-). Merci =D je suis le seul à l'aide de ces valeurs à des fins de comparaison, donc je suis très bien, mais pour d'autres cela peut être digne de mention. De setTime() documentation: Note: l'Appel de setTime() avec la Date(Long.MAX_VALUE) ou la Date(Long.MIN_VALUE) le rendement peut être incorrecte des valeurs de champ de get(). pajton, vérifiez ceci: <code>migc.get(Calendar.ÈRE)</code> 0 signifie BC 1 signifie AD année 292269055 correspond à 292269055 BC La droite. C'est très habile de sa part en fait;-) Mieux utiliser new Date(0) pour un minimum de date.
J'ai pris joekutner de la suggestion et il a couru avec:
GregorianCalendar gCal =newGregorianCalendar();
gCal.setTime(newDate(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(newDate(Long.MAX_VALUE));System.out.println("Max Date is "+ gCal.getTime()+" "+ gCal.get(Calendar.ERA));MinDate is SunDec0216:47:04 GMT 2922690550MinDate less 1 second is SunAug1707:12:54 GMT 2922789941MaxDate is SunAug1707:12:55 GMT 2922789941
Qui affiche le minimum et le maximum, et entre eux une indication de ce qui se passe si vous essayez de passer à la deuxième avant que le minimum - vous enroulez autour de.
Vous pouvez essayer d'appeler Calendrier.getMinimum() pour chaque type de champ (c'est à dire l'année, le mois, etc.) et puis définissez les valeurs minimales sur les types de champ. Ce serait vous donner le minimum de calendrier. Je ne sais pas si il y a un moyen plus rapide de le faire.
Les autres Réponses peuvent être correctes, mais l'utilisation dépassé les classes.
java.temps
La vieille date-heure classes (java.util.Date/.Calendrier etc.) ont été supplanté par le java.le temps cadre intégré dans Java 8 et les versions ultérieures.
La java.les classes de temps sont inspirés par Joda-Time, défini par JSR 310, prolongée par la ThreeTen-projet Extra, dos-porté à Java 6 & 7 par le ThreeTen-Backport projet, et adapté à Android dans le ThreeTenABP projet. Voir Tutoriel.
Un instant sur la timeline dans UTC avec une résolution de nanosecondes, utilisez Instantané. Étant donné un offset-de-UTC, utilisez OffsetDateTime. Pour un fuseau horaire (offset + règles pour les anomalies), l'utilisation ZonedDateTime, mais de par sa nature, n'a pas défini min/max, ni ne ZoneId. Pour un jour seulement de la valeur, sans le temps de la journée et sans fuseau horaire, utilisez LocalDate. Pour un temps de la journée seulement de la valeur, sans date et sans fuseau horaire, utilisez LocalTime. Pour la date-heure, sans temps de zone, utilisez LocalDateTime.
Attention: méfiez-vous de l'utilisation de ces valeurs comme une sorte de drapeau ou une signification particulière. De nombreux autres logiciels de bibliothèques et bases de données peuvent ne pas soutenir ces valeurs extrêmes.
Pour un drapeau ou une signification particulière comme un non-null "valeur non disponible", je vous suggère de prélèvement arbitraire moment, mais éviter d'aller à de tels extrêmes atteint soit en avant ou en arrière dans le temps. Peut-être le L'époque Unix date de référence, le premier moment de 1970 UTC, 1970-01-01T00:00:00Z. Défini comme une constante dans Java: Instantanée.ÉPOQUE
Pour en savoir plus, consultez les Oracle Tutoriel. Et de recherche de Débordement de Pile pour de nombreux exemples et des explications. La spécification est JSR 310.
Vous pouvez échanger java.temps objets directement avec votre base de données. Utiliser un Pilote JDBC compatible avec JDBC 4.2 ou plus tard. Pas besoin de chaînes, pas besoin de java.sql.* classes.
La ThreeTen-Extra projet s'étend java.temps avec d'autres classes. Ce projet est un terrain d'essai pour de possibles futurs ajouts à java.temps. Vous pouvez trouver quelques classes utiles ici comme Intervalle, YearWeek, YearQuarter, et plus.
Cela devrait fonctionner:
Merci =D je suis le seul à l'aide de ces valeurs à des fins de comparaison, donc je suis très bien, mais pour d'autres cela peut être digne de mention. De setTime() documentation: Note: l'Appel de setTime() avec la Date(Long.MAX_VALUE) ou la Date(Long.MIN_VALUE) le rendement peut être incorrecte des valeurs de champ de get().
pajton, vérifiez ceci: <code>migc.get(Calendar.ÈRE)</code> 0 signifie BC 1 signifie AD année 292269055 correspond à 292269055 BC
La droite. C'est très habile de sa part en fait;-)
Mieux utiliser
new Date(0)
pour un minimum de date.OriginalL'auteur codefinger
J'ai pris joekutner de la suggestion et il a couru avec:
Qui affiche le minimum et le maximum, et entre eux une indication de ce qui se passe si vous essayez de passer à la deuxième avant que le minimum - vous enroulez autour de.
Ce fut la version 1.6.0_17.
OriginalL'auteur martin clayton
Vous pouvez essayer d'appeler Calendrier.getMinimum() pour chaque type de champ (c'est à dire l'année, le mois, etc.) et puis définissez les valeurs minimales sur les types de champ. Ce serait vous donner le minimum de calendrier. Je ne sais pas si il y a un moyen plus rapide de le faire.
OriginalL'auteur pajton
Les autres Réponses peuvent être correctes, mais l'utilisation dépassé les classes.
java.temps
La vieille date-heure classes (java.util.Date/.Calendrier etc.) ont été supplanté par le java.le temps cadre intégré dans Java 8 et les versions ultérieures.
La java.les classes de temps sont inspirés par Joda-Time, défini par JSR 310, prolongée par la ThreeTen-projet Extra, dos-porté à Java 6 & 7 par le ThreeTen-Backport projet, et adapté à Android dans le ThreeTenABP projet. Voir Tutoriel.
Un instant sur la timeline dans UTC avec une résolution de nanosecondes, utilisez
Instantané
. Étant donné un offset-de-UTC, utilisezOffsetDateTime
. Pour un fuseau horaire (offset + règles pour les anomalies), l'utilisationZonedDateTime
, mais de par sa nature, n'a pas défini min/max, ni neZoneId
. Pour un jour seulement de la valeur, sans le temps de la journée et sans fuseau horaire, utilisezLocalDate
. Pour un temps de la journée seulement de la valeur, sans date et sans fuseau horaire, utilisezLocalTime
. Pour la date-heure, sans temps de zone, utilisezLocalDateTime
.Suivantes sont toutes constantes pré-définies.
Instantanée.MIN
=-1000000000-01-01T00:00Z
Instantanée.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
de l'Année.MIN_VALUE
=-999,999,999
de l'Année.MAX_VALUE
=+999,999,999
Écartfuseau.MIN
=-18:00
(mais-12:00
dans la pratique)Écartfuseau.MAX
=+18:00
(mais+14:00
dans la pratique)Attention: méfiez-vous de l'utilisation de ces valeurs comme une sorte de drapeau ou une signification particulière. De nombreux autres logiciels de bibliothèques et bases de données peuvent ne pas soutenir ces valeurs extrêmes.
Pour un drapeau ou une signification particulière comme un non-null "valeur non disponible", je vous suggère de prélèvement arbitraire moment, mais éviter d'aller à de tels extrêmes atteint soit en avant ou en arrière dans le temps. Peut-être le L'époque Unix date de référence, le premier moment de 1970 UTC, 1970-01-01T00:00:00Z. Défini comme une constante dans Java: Instantanée.ÉPOQUE
Sur java.temps
La java.temps cadre est intégré dans Java 8 et les versions ultérieures. Ces classes permettent d'éviter la pénible vieux héritage date du temps des classes comme
java.util.Date
,Agenda
, &SimpleDateFormat
.La Joda-Time projet, maintenant dans le mode de maintenance, conseille la migration vers le java.le temps classes.
Pour en savoir plus, consultez les Oracle Tutoriel. Et de recherche de Débordement de Pile pour de nombreux exemples et des explications. La spécification est JSR 310.
Vous pouvez échanger java.temps objets directement avec votre base de données. Utiliser un Pilote JDBC compatible avec JDBC 4.2 ou plus tard. Pas besoin de chaînes, pas besoin de
java.sql.*
classes.Où obtenir le java.les classes de temps?
La ThreeTen-Extra projet s'étend java.temps avec d'autres classes. Ce projet est un terrain d'essai pour de possibles futurs ajouts à java.temps. Vous pouvez trouver quelques classes utiles ici comme
Intervalle
,YearWeek
,YearQuarter
, et plus.OriginalL'auteur Basil Bourque