[英]Calendar.get(Calendar.DAY_OF_MONTH) returning wrong day
[英]Seting calendar.day_of_month is setting calendar.year
我有一個最初設置為 2019-11-01 的日歷,我想使用以下方法設置為每月的第一個日期和最后一個日期:
cal.set(int field,int value)
對於我使用的領域:
Calendar.DATE or Calendar.DAY_OF_MONTH
但是 sysout 上的系統顯示它正在設置 Calendar.YEAR
System.out.println(new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime()));
cal.set(cal.get(Calendar.DAY_OF_MONTH),1);
System.out.println(new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime()));
cal.set(cal.get(Calendar.DAY_OF_MONTH),cal.getActualMaximum(Calendar.DAY_OF_MONTH));
System.out.println(new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime()));
系統輸出:
2019-11-01
0001-11-01
0030-11-01
你應該使用
日歷.DAY_OF_MONTH
不是
cal.get(日歷.DAY_OF_MONTH)
因為日歷 class 有 static 字段來表示每個字段的 ID,例如 DAY_OF_MONTH = 5 並且當您使用 cal.set(cal.get(Calendar.DAY_OF_MONTH),1) 時,您告訴日歷獲取 DAY_OF_ 的日歷值等於 = 1(你說 cal 值 = 2-19-11-01),1 是年份,因此你將年份設置為 1 而不是天
像這樣使用它:cal.set(Calendar.DAY_OF_MONTH,1);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.