java程序日历记事本中:日历.set(month, month-1, 1);里面的参数是啥意思?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java程序日历记事本中:日历.set(month, month-1, 1);里面的参数是啥意思?相关的知识,希望对你有一定的参考价值。

还有奥,星期几=日历.get(Calendar.DAY_OF_WEEK)-1;这句为什么要减1?

我们知道DAY_OF_WEEK是获取当前日期是一周中的第几天,而一周从周日算起,因此当我们取得这个值之后,为了要正确的截取出随后的字符串中的那个中文字符,因此它需要减1来达到目的。你只要跟踪一下程序运行,观察变量的赋值就会理解它这样编写的用意了。追问

十分感谢!

参考技术A Calendar.get(Calendar.DAY_OF_WEEK)-1 如果没记错 sunday是0 周一是1 get(Calendar.DAY_OF_WEEK)对应的是1-7
月份是从0开始的set(month, month-1, 1);第一个应该是year 第二个月 第三个日追问

也就是说应该是set(year,month-1,1)吗?那month为什么会减1呢?

追答

月份是从0开始的 你传的1月要存成0的 当然减一

本回答被提问者采纳

java日历返回错误的hour_of_day

【中文标题】java日历返回错误的hour_of_day【英文标题】:java calendar returns wrong hour_of_day 【发布时间】:2016-10-16 03:25:09 【问题描述】:

我有以下代码:

Calendar cal= Calendar.getInstance();
cal.set(Calendar.YEAR, 1994);   
cal.set(Calendar.MONTH, 03);
cal.set(Calendar.DAY_OF_MONTH,1);
cal.set(Calendar.HOUR_OF_DAY, 0); 

运行后我期望:

cal.get(Calendar.HOUR_OF_DAY);

返回0,但返回1

如果我使用不同的年份/月份,它可以正常工作。 此外,再设置一个小时也可以,它只发生在 0 小时。

1994 年 4 月有什么特别之处吗?我在这里错过了什么?

提前致谢。

【问题讨论】:

按预期给我 0:ideone.com/85WUH0 奇怪...也许是时区问题?感谢您的检查 【参考方案1】:

我使用的是以色列 TZ,由于 DST 过渡,94 年 4 月 1 日的 0 小时不存在。

【讨论】:

以上是关于java程序日历记事本中:日历.set(month, month-1, 1);里面的参数是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

java日历返回错误的hour_of_day

用java编辑日历记事本

在日历安卓中设置日期

Java编写程序,输入年份,输出本年度各月份日历

在Java中如何用calendar类输入年和月份打印当月的日历

日历得到时间问题