相关疑难解决方法(0)

为什么Java的Date.getYear()返回111而不是2011?

我在将字符串日期解析为Date对象时遇到了一些麻烦.我用a 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();
    }
Run Code Online (Sandbox Code Playgroud)

当我打印出来时dateFrom,我得到了Sun Dec 04 00:00:00 GMT 2011,这就是你所期望的.但打印.getYear()回报111.

我需要能够获得时间序列图的日期,月份和年份.

java calendar date

43
推荐指数
4
解决办法
5万
查看次数

为什么java.util.Date将Year表示为"year-1900"?

java.util.Date:

 * In all methods of class <code>Date</code> that accept or return
 * year, month, date, hours, minutes, and seconds values, the
 * following representations are used:
 * <ul>
 * <li>A year <i>y</i> is represented by the integer
 *     <i>y</i><code>-1900</code>.
Run Code Online (Sandbox Code Playgroud)

当然,在Java 1.1中,getYear()方法等被弃用了java.util.Calendar,这仍然有这个奇怪的弃用说明:

 int    getYear() 
    Deprecated. As of JDK version 1.1, replaced by Calendar.get(Calendar.YEAR) - 1900.

 setYear(int year) 
      Deprecated. As of JDK version 1.1, replaced by Calendar.set(Calendar.YEAR, year + 1900).
Run Code Online (Sandbox Code Playgroud)

当然,以月为0基础,但我们都知道(虽然你认为他们已经解决了这个问题Calendar- …

java date offset java.util.date

4
推荐指数
1
解决办法
8025
查看次数

标签 统计

date ×2

java ×2

calendar ×1

java.util.date ×1

offset ×1