2017-05-06 2 views
0

Je ne peux pas imprimer GregorianCalendarcalendrier grégorienne erreur java

package Tests; 

import java.util.Date; 
import java.util.GregorianCalendar; 

public class Data 
{ 

    public static void main(String[] args) 
    { 
     GregorianCalendar time = new GregorianCalendar(1999, 2, 2); 
     System.out.println(time); 
    } 

} 

Je reçois ce

java.util.GregorianCalendar [time = ?, areFieldsSet = false, areAllFieldsSet = false, indulgente = true , zone = sun.util.calendar.ZoneInfo [id = "Europe/Belgrade", décalage = 3600000, dstSavings = 3600000, useDaylight = true, transitions = 119, lastRule = java.util.SimpleTimeZone [id = Europe/Belgrade, décalage = 3600000, dstSavings = 3600000, useDaylight = vrai, startYear = 0, startMode = 2, startMonth = 2, startDay = -1, startDayOfWeek = 1, startTime = 3600000, startTimeMode = 2, endMode = 2, endMonth = 9, endDay = -1, endD ayOfWeek = 1, endTime = 3600000, endTimeMode = 2], firstDayOfWeek = 2, minimalDaysInFirstWeek = 4, ERA = ?, YEAR = 1999, MOIS = 2, WEEK_OF_YEAR = ?, WEEK_OF_MONTH = ?, DAY_OF_MONTH = 2, DAY_OF_YEAR = ?, DAY_OF_WEEK = ?, DAY_OF_WEEK_IN_MONTH = ?, AM_PM = 0, HEURE = 0, HOUR_OF_DAY = 0, MINUTE = 0, SECOND = 0, MILLISECOND = ?, ZONE_OFFSET = ?, DST_OFFSET =?]

Comment puis-je imprimer il?

+0

check SimpleDateFormat (voir https : //docs.oracle.com/javase/tutorial/i18n/format/simpleDateFormat.html) – Leo

Répondre

0

vous pouvez utiliser cela comme: -

GregorianCalendar calendar = new GregorianCalendar(); 
Date now = calendar.getTime(); 
System.out.println(now); 

ou

Calendar cal2 = new GregorianCalendar(2010, 9, 26); // allocate with the specified date 
cal2.get(Calendar.DAY_OF_WEEK);      // 1 (Sunday) to 7 (Saturday) 
+0

Mais pourquoi je ne peux pas l'utiliser simplement? Juste imprimer sur la référence "temps"? – user2540406

0

java.time

La solution moderne utilise la classe LocalDate à la place. Évitez GregorianCalendar car il est maintenant obsolète.

LocalDate ld = LocalDate.of(1999 , Month.FEBRUARY , 2) ; 

ld.toString(): 1999-02-02

La méthode toString utilise la norme ISO 8601 formats. Pour les autres formats, utilisez la classe DateTimeFormatter. Cherchez Stack Overflow pour plus d'exemples et de discussions, comme cela a été couvert plusieurs fois.

Généralement mieux de laisser DateTimeFormatter automatiquement localisé pour vous.

Locale locale = Locale.CANADA_FRENCH ; 
DateTimeFormatter f = DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL).withLocale(locale) ; 
String output = ld.format(f) ; 

2 février 1999 mardi


A propos java.time

Le cadre java.time est construit en Java 8 et versions ultérieures. Ces classes supplantent les vieilles classes de date-heure legacy gênantes telles que java.util.Date, Calendar, & SimpleDateFormat. Le projet Joda-Time, maintenant en maintenance mode, conseille la migration vers les classes java.time.

Pour en savoir plus, voir le Oracle Tutorial. Et recherchez Stack Overflow pour de nombreux exemples et explications. La spécification est JSR 310.

Où obtenir les classes java.time?

  • Java SE 8, Java SE 9, et plus tard
    • intégré.
    • Partie de l'API Java standard avec une implémentation groupée.
    • Java 9 ajoute quelques fonctionnalités et corrections mineures.
  • Java SE 6 et Java SE 7
    • Une grande partie de la fonctionnalité de java.time est de retour à Java 6 Ported .
  • Android

Le projet ThreeTen-Extra java.time étend avec des classes supplémentaires. Ce projet est un terrain d'essai pour d'éventuels ajouts futurs à java.time. Vous pouvez trouver ici des classes utiles telles que Interval, YearWeek, YearQuarter et more.