Pourquoi Java est à Jour.getYear() return 111 au lieu de 2011?

Je vais avoir un peu de difficulté de l'analyse d'une chaîne de date pour un Date objet. J'utilise un DateFormat pour analyser la chaîne, et lorsque j'imprime la valeur de la date, il me donne ce que j'attends.

Mais quand j'ai essayer de faire le jour, le mois ou l'année, il me donne des valeurs erronées. Par exemple, l'année 2011 est, mais quand je fais .getYear() il me donne 111. Je n'ai aucune idée de pourquoi cela se passe. Ici est le segment de code:

    Date dateFrom = null;

    String gDFString = g.getDateFrom();

    System.out.println(gDFString);

    DateFormat df = new SimpleDateFormat("dd/MM/yyyy");

    try {
        dateFrom = df.parse("04/12/2011");

        System.out.println(dateFrom);

        System.out.println(dateFrom.getYear());
    } catch (ParseException e) {
        e.printStackTrace();
    }

Quand j'ai l'impression dateFrom, je reçois Sun Dec 04 00:00:00 GMT 2011, qui est ce que vous attendez. Mais l'impression .getYear() retourne 111.

J'ai besoin d'être en mesure d'obtenir le jour, le mois et l'année de la date pour un graphique de la série chronologique.

  • Il n'a même pas une fois s'est produite à vous de lire la documentation du [Date.getYear()](download.oracle.com/javase/6/docs/api/java/util/... qui indique clairement qu'il renvoie “l'année a représenté à cette date, à moins de 1900“?
  • Beaucoup de programmeurs (dont moi) attendre l'année 2011 pour être analysé comme en 2011, pas 2011 - 1900, pour sûr. je pense que c'est de Java mise en œuvre, ce qui est étrange, à n'importe quelles raisons internes sont derrière elle), pas de l'OP.
InformationsquelleAutor Ben Calder | 2011-08-27