为什么这段代码会生成错误的数据?

时间:2013-02-27 02:23:52

标签: java android timestamp

我的项目中有这段代码

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

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

5 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:2)

Calendar.WEEK_OF_YEAR是一个常量,用于指定从Calendar实例返回的字段。您需要调用Calendar#get

,而不是将值分配给固定值
int WOY = subval.get(Calendar.WEEK_OF_YEAR);

答案 2 :(得分:1)

你需要像这样得到它

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

答案 3 :(得分:1)

Calendar.WEEK_OF_YEAR是一个静态常量。

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

答案 4 :(得分:0)

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

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

见:week_of_year