Calendar.WEEK_OF_MONTH 在两个不同的设备上给出不同的结果

2024-02-17

我有两台设备 HTC Android 2.3.5 和 Samsung Android 2.3.6 现在我面临的问题是 我需要日期是一个月中的第几周。

所以我编写了这段代码并安装在两部手机上。并将系统日期设置为

2013年1月27日

  Calendar calendar = Calendar.getInstance();
  int weekOfMonth =  calendar.get(Calendar.WEEK_OF_MONTH);
  Log.i(TAG,"weekOfMonth = "+weekOfMonth);

现在在 HTC 上输出是

 weekOfMonth = 5

而在三星上运行相同的代码会产生

 weekOfMonth = 4

这确实破坏了我的逻辑和未来的计算。

难道我做错了什么 ?


这可能是由于语言环境造成的。爪哇语

        Calendar calFr = Calendar.getInstance(TimeZone.getTimeZone("Europe/Paris"), Locale.FRANCE);
        Calendar calUs = Calendar.getInstance(TimeZone.getTimeZone("US/Eastern"), Locale.US);
        Calendar calUk = Calendar.getInstance(TimeZone.getTimeZone("GMT"), Locale.UK);
        calFr.set(2013, Calendar.JANUARY, 27);
        calUs.set(2013, Calendar.JANUARY, 27);
        calUk.set(2013, Calendar.JANUARY, 27);

        int weekOfMonthFr = calFr.get(Calendar.WEEK_OF_MONTH);
        int weekOfMonthUs = calUs.get(Calendar.WEEK_OF_MONTH);
        int weekOfMonthUk = calUk.get(Calendar.WEEK_OF_MONTH);
        System.out.println("France week of month is " + weekOfMonthFr);
        System.out.println("USA week of month is " + weekOfMonthUs);
        System.out.println("UK week of month is " + weekOfMonthUk);

会给你

France week of month is 4
USA week of month is 5
UK week of month is 4
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Calendar.WEEK_OF_MONTH 在两个不同的设备上给出不同的结果 的相关文章