gpt4 book ai didi

java - 以下代码在 Java 和 Android 中的结果不同

转载 作者:行者123 更新时间:2023-11-30 03:17:27 26 4
gpt4 key购买 nike

以下代码在 Java 中运行与在 Android 上运行时产生不同的结果:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

Calendar cal = Calendar.getInstance();//

for(int k = 1; k < 10; k++) {
cal.set(Calendar.YEAR, 2013);
cal.set(Calendar.WEEK_OF_YEAR, k);
cal.set(Calendar.DAY_OF_WEEK, 1);
System.out.println(sdf.format(cal.getTime()));
}


在 Java (JDK 1.6) 上的结果:

java


Android 上的结果(Android 4.2.2 模拟器): enter image description here

为什么会这样?我该如何解决这个问题?

最佳答案

遵循 Android 开发人员文档中的规则 here它似乎应该凭借最后一条规则(以及最近设置的事实)起作用。

Inconsistent information. If fields conflict, the calendar will give preference to fields set more recently. For example, when determining the day, the calendar will look for one of the following combinations of fields. The most recent combination, as determined by the most recently set single field, will be used.

 MONTH + DAY_OF_MONTH
MONTH + WEEK_OF_MONTH + DAY_OF_WEEK
MONTH + DAY_OF_WEEK_IN_MONTH + DAY_OF_WEEK
DAY_OF_YEAR
DAY_OF_WEEK + WEEK_OF_YEAR

Android 实现中可能存在错误?我会尝试先设置星期几,然后再设置可能解决该问题的月份。或者从第一周开始使用一次添加或滚动 7 天作为选项向前迭代。

关于java - 以下代码在 Java 和 Android 中的结果不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19786233/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com