【发布时间】:2011-08-27 15:55:53
【问题描述】:
我在将字符串日期解析为 Date 对象时遇到了一些问题。我使用DateFormat 来解析字符串,当我打印日期的值时,它给出了我所期望的。
但是当我尝试获取日期、月份或年份时,它给了我错误的值。例如,这一年是 2011 年,但当我做 .getYear() 时,它给了我 111。我不知道为什么会这样。以下是相关代码段:
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();
}
当我打印出dateFrom 时,我得到Sun Dec 04 00:00:00 GMT 2011,这是您所期望的。但是打印.getYear() 会返回111。
我需要能够为时间序列图获取日期的日、月和年。
【问题讨论】:
-
您甚至没有一次阅读过 [Date.getYear()](download.oracle.com/javase/6/docs/api/java/util/… 的文档,其中明确指出它返回“代表的年份到这个日期,减去 1900“?
-
许多程序员(包括我)都希望 2011 年被解析为 2011 年,而不是 2011 - 1900 年。我认为这是 Java 的实现很奇怪(不管它背后的内部原因是什么),而不是 OP。