【问题标题】:Calendar Issue in BlackBerry JavaBlackBerry Java 中的日历问题
【发布时间】:2011-07-14 07:54:44
【问题描述】:
cal.set(Calendar.MONTH, 7);
cal.set(Calendar.DATE,13);
cal.set(Calendar.HOUR_OF_DAY, 11);
cal.set(Calendar.MINUTE, 1);
cal.set(Calendar.SECOND, 1);
cal.set(Calendar.YEAR, 2011);
cal.setTimeZone(TimeZone.getDefault()/*getTimeZone("GMT+5:30")*/);

我正在使用上面的代码来设置日期和时间,但是在设置之后如果我尝试通过 cal.getTime() 检索它,我得到的日期和时间为

sat Aug 13 11:01:01 America/NewYork 2011

【问题讨论】:

  • 请不要用“紧急”标记您的问题!
  • 您的帖子中没有任何问题或问题定义。
  • -1,问题表明 OP 在解决问题方面付出的努力很少。

标签: blackberry java-me


【解决方案1】:

Java Calendar 类中的月份编号为 0 到 11,而不是 1 到 12。所以从所需的月份数中减去 1。

编辑添加:Calendar 类有许多静态变量,包括一年中月份的十二个 - Calendar.JANUARY(整数 0)、Calendar.FEBRUARY(整数 1)等。我建议你尽可能使用那些,而不是整数。

【讨论】:

    【解决方案2】:

    是的,这正是你设置的。

    如果您预计是 7 月,则需要更仔细地阅读 JavaDoc for Calendar.MONTH - 它是从 0 开始的:

    get 和 set 的字段编号,表示月份。这是特定于日历的值。公历和儒略历中的第一个月是 JANUARY,即 0;最后一个取决于一年中的月数。

    如果您可以在 Blackberry 上使用 Joda Time,我实际上会敦促您使用它 - 这是一个 更好的 API。

    【讨论】:

      【解决方案3】:

      java.util.Calendar 类从 0 开始计算月份,但天数使用当月的实际日期。这是一个非常经常被问到的问题——几乎每个人在第一次使用 Java DateCalendar 类进行编程时都会遇到这个问题。

      【讨论】:

        猜你喜欢
        • 2017-04-02
        • 2011-08-21
        • 1970-01-01
        • 1970-01-01
        • 2018-08-19
        • 1970-01-01
        • 2021-06-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多