以下Java和Android中的代码可能会产生不同的结果

以下Java和Android中的代码可能会产生不同的结果,java,android,calendar,Java,Android,Calendar,以下代码在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

以下代码在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()));
} 
SimpleDateFormat sdf=新的SimpleDateFormat(“yyyy-MM-dd”);
Calendar cal=Calendar.getInstance()//
对于(int k=1;k<10;k++){
校准集(日历年,2013年);
校准设置(日历周/年,k);
校准设置(日历日/周,1);
System.out.println(sdf.format(cal.getTime());
} 

在Java(JDK 1.6)上的结果:


Android上的结果(使用Android 4.2.2的模拟器):


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

按照Android开发者文档中的规则,根据上一条规则(以及最近设置的规则),它似乎应该可以工作

信息不一致。如果字段冲突,日历将给出 对最近设置的字段的首选项。例如,在确定 当天,日历将查找以下组合之一 一片田野。最新的组合,由最新的 最近设置的单个字段,将被使用

 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实现中可能存在的错误?
我会尝试先设定一周中的哪一天,然后再设定一个月,这可能会解决这个问题。从第一周开始,交替使用“添加”或“滚动”向前迭代七天作为一个选项。

按照Android开发者文档中的规则,根据最后一条规则(以及最近设置的规则),它似乎应该可以工作

信息不一致。如果字段冲突,日历将给出 对最近设置的字段的首选项。例如,在确定 当天,日历将查找以下组合之一 一片田野。最新的组合,由最新的 最近设置的单个字段,将被使用

 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实现中可能存在的错误?
我会尝试先设定一周中的哪一天,然后再设定一个月,这可能会解决这个问题。从第一周开始,交替使用“添加”或“滚动”向前迭代七天作为一个选项。

你能再详细说明一下吗?你要说的是,如果你在java中运行,你会得到不同的结果,在android中运行,会得到不同的结果……请将这两个不同的结果添加到你的问题中,你的尝试是荒谬的。第一,你设置了一周(1、2、3)则u将该周设置为一周的第一天(星期日)每次都有可能。。lol@ShakeebShaheen这对我来说并不荒谬。-一个合理的方法来实现一年中每个星期的开始日期。你能再详细一点吗?你要说的是,如果你在java中运行你会得到不同的结果,在android中运行你会得到不同的结果…请将这两个不同的结果添加到你的问题中尝试是荒谬的。首先你要设定2013年的一周(1、2、3),然后你要设定该周的第一天(周日)每次都有可能。。lol@ShakeebShaheen这对我来说并不荒谬。-一种合理的方法来实现一年中每个星期的开始日期。如果这是一个错误,我们应该报告它…其他人可以确认吗?如果这是一个错误,我们应该报告它…其他人可以确认吗?