2

我知道 Java 月份从 0 开始,我们必须为其添加 1 的偏移量,但是当我使用以下具有 CST 时区的代码时,我得到 2 月份的值为 6。

我正在尝试将月份转换为其等效的日历值,例如 1 表示 1 月,2 表示 2 月,依此类推。

    Calendar cal = Calendar.getInstance();
    cal.setTime(new SimpleDateFormat("MMM").parse("FEB"));
    int monthInt = cal.get(Calendar.MONTH) + 1;
    System.out.println(monthInt);

但是当我在时区为印度标准时间(IST-GMT +5.30)的机器上运行它时,我得到的预期值为 2。

这里有什么问题?我是否需要在我的日历中包含任何语言环境。使用上面的代码,几个月来我得到完全没有意义的值。

4

2 回答 2

3

您应该Calendar使用适当的语言环境实例化您的:

Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("IST"),Locale.US);
于 2013-11-12T10:46:25.230 回答
1
于 2019-09-01T18:14:38.270 回答