【问题标题】:Why does this code generate incorrect data?为什么这段代码会生成不正确的数据?
【发布时间】:2013-02-27 02:23:52
【问题描述】:

我的项目中有这段代码

    Calendar subval = Calendar.getInstance();
    final int WOY= subval.WEEK_OF_YEAR;

当我检查它的 WOY 值时,它现在输出 3,现在是 2013 年 2 月 25 日,我知道周数不是三。我存储此值以帮助设置自动刷新时间,以便我能够强制刷新以确保设备具有最新数据。在刷新期间,一些关键数据存储在本地。现在我需要一个可靠的固定时间段,如果一年中的一周与一年中的一周的存储值不同,我基本上每周选择一次设置数据,以便在下次机会时刷新,然后在设备上存储当前一周。我在 1 周内开始编写此代码,所以我还没有过渡到新的一周,所以我不确定它是否正常工作,但三个的值让我害怕。

【问题讨论】:

    标签: java android timestamp


    【解决方案1】:

    WEEK_OF_YEAR 是用于 get() 方法的标志。它的价值永远不会改变。 你可以这样使用它:

    Calendar subval = Calendar.getInstance();
    final int WOY= subval.get(Calendar.WEEK_OF_YEAR);
    

    【讨论】:

    • 谢谢它现在可以工作了,eclipse 在这个问题上欺骗了我,它说我可以使用我使用的格式,但它实际上是不正确的。知道 3 代表什么
    • 3 只是一个标志:Calendar.get(int flag) 可以这样说 { if (flag == 3) { return some_method_to_calculate_the_week(); }
    【解决方案2】:

    Calendar.WEEK_OF_YEAR 是一个常量,用于指定从Calendar 实例返回的字段。而不是将值分配给固定值,您需要调用Calendar#get

    int WOY = subval.get(Calendar.WEEK_OF_YEAR);
    

    【讨论】:

      【解决方案3】:

      你需要像这样得到它

       Calendar subval = Calendar.getInstance();
         int year=subval.get(Calender.Calendar.WEEK_OF_YEAR);
      

      【讨论】:

        【解决方案4】:

        Calendar.WEEK_OF_YEAR 是一个静态常量。

        您需要致电calendar.get(Calendar.WEEK_OF_YEAR)

        【讨论】:

          【解决方案5】:

          根据 java oracle 文档,子类定义一年中第一周前几天的 WEEK_OF_YEAR

          http://docs.oracle.com/javase/1.4.2/docs/api/java/util/Calendar.html

          参见:week_of_year

          【讨论】:

            猜你喜欢
            • 2011-02-21
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-07-23
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多