- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 java.util.Calendar
中,一月被定义为月份 0,而不是月份 1。这有什么具体原因吗?
我看到很多人对此感到困惑......
最佳答案
这只是 Java 日期/时间 API 的可怕困惑的一部分。列出它的问题需要很长时间(而且我确信我不知道一半的问题)。诚然,处理日期和时间很棘手,但无论如何。
帮自己一个忙,使用 Joda Time相反,或者可能 JSR-310 .
编辑:至于原因 - 正如其他答案中所述,很可能是由于旧的 C API,或者只是一种从 0 开始的一般感觉......当然,除了日子从 1 开始。我怀疑原始实现团队之外的任何人是否能够真正说出原因 - 但我再次敦促读者不要太担心为什么做出错误的决定,而是要看看整个肮脏的领域在 java.util.Calendar
中找到更好的东西。
赞成使用基于 0 的索引的一点是,它使“名称数组”之类的事情变得更容易:
// I "know" there are 12 months
String[] monthNames = new String[12]; // and populate...
String name = monthNames[calendar.get(Calendar.MONTH)];
当然,一旦您获得包含 13 个月的日历,此操作就会失败...但至少指定的大小是您期望的月数。
这不是一个好理由,但它是一个理由......
编辑:作为评论,要求提供一些关于我认为日期/日历有问题的想法:
Date
和 Calendar
作为不同的东西很好,但是缺少“本地”与“分区”值的分离,就像日期/时间与日期与时间的分离一样Date.toString()
实现始终使用系统本地时区(之前这让许多 Stack Overflow 用户感到困惑)关于java - 为什么 Java 日历中的一月是 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16752111/
只想将 Jan 转换为 01(日期格式) 我可以使用array(),但正在寻找另一种方法...... 有什么建议吗? 最佳答案 只是为了好玩,我这样做了: function getMonthFromS
使用 Rails 4.2、Ruby 2.1.7。 PostgreSQL 9.4 当我只有一个整数作为参数时,我想查找特定月份的所有记录。 例如1 = 一月,2 = 二月 现在我有(start_time
我知道此刻月份的索引为 0。基本上我将 this.month 设置为 0 到 11 之间的任何整数并运行以下代码。由于某种原因,它不想更新一月份的矩变量(数字为 0)。出了什么问题以及如何修复? co
这似乎是一个相当简单的问题,但我不知道如何在销售计数按月份分组后将月份的数值更改为月份的实际名称。 基本上我想列出每个月的销售总额。目前,这就是我所拥有的: SELECT MONTH(SaleDate
我是一名优秀的程序员,十分优秀!