Calender設定固定時間遇到的問題

來源:互聯網
上載者:User

標籤:not   round   需要   end   base   sys   log   time()   param   

在使用Calender擷取執行個體,設定成UTC時區時,發現比我們常規的月份多了一個月:

範例程式碼如下:

Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("UTC"));calendar.set(2016, 9, 11, 16, 0, 0);System.out.println(calendar.getTime());

列印的結果為:

Wed Oct 12 00:00:00 CST 2016

即2016-10-12 00:00:00,比我們設定的月份多了一個月。

我們來看下calender中set的源碼:

    /**     * Sets the values for the fields <code>YEAR</code>, <code>MONTH</code>,     * <code>DAY_OF_MONTH</code>, <code>HOUR_OF_DAY</code>, <code>MINUTE</code>, and     * <code>SECOND</code>.     * Previous values of other fields are retained.  If this is not desired,     * call {@link #clear()} first.     *     * @param year the value used to set the <code>YEAR</code> calendar field.     * @param month the value used to set the <code>MONTH</code> calendar field.     * Month value is 0-based. e.g., 0 for January.     * @param date the value used to set the <code>DAY_OF_MONTH</code> calendar field.     * @param hourOfDay the value used to set the <code>HOUR_OF_DAY</code> calendar field.     * @param minute the value used to set the <code>MINUTE</code> calendar field.     * @param second the value used to set the <code>SECOND</code> calendar field.     * @see #set(int,int)     * @see #set(int,int,int)     * @see #set(int,int,int,int,int)     */    public final void set(int year, int month, int date, int hourOfDay, int minute,                          int second)    {        set(YEAR, year);        set(MONTH, month);        set(DATE, date);        set(HOUR_OF_DAY, hourOfDay);        set(MINUTE, minute);        set(SECOND, second);    }

看上面代碼中飄紅的部分,一月份是從0開始的~顯而易見,需要將月份-1

Calender設定固定時間遇到的問題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.