簡體   English   中英

奇怪的Java日歷行為

[英]Odd Java Calendar behavior

有誰知道為什么輸出結果中的年份是2077,而不是2011?

Integer yyyyMMdd = 20110830
Calendar day = Calendar.getInstance(TimeZone.DEFAULT);

Integer dd = yyyyMMdd % 100;
Integer yyyy = yyyyMMdd / 10000;

day.set(yyyy, MM-1, dd);

System.err.println(day.getTimeInMillis());

修復了您的代碼,使其可以實際編譯后,我得到了預期的結果-大概這是您真正在運行但未顯示的代碼中的錯誤。 這是我的代碼:

import java.util.*;

class Test {
    public static void main(String[] args) {
        int yyyyMMdd = 20110830;
        Calendar day = Calendar.getInstance(TimeZone.getDefault());

        int dd = yyyyMMdd % 100;
        int MM = (yyyyMMdd % 10000) / 100;
        int yyyy = yyyyMMdd / 10000;

        day.set(yyyy, MM-1, dd);

        System.err.println(day.getTime());
    }
}

結果在我的機器上:

Tue Aug 30 07:18:33 BST 2011

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM