关于java 和 android 下获取指定时间是本年第几周不一致问题的解决方法

来源:互联网 发布:php 魔术方法 及用法 编辑:程序博客网 时间:2024/05/16 11:08

本人在开发 android过程中,有个需求是根据当前时间获取是本年第几周。刚开始采用java的传统方法获取:

//代码编写时间:2015年11月17日14:37:52GregorianCalendar cal = new GregorianCalendar();    //当前时间cal.setMinimalDaysInFirstWeek(7);   //第一周最少包含七天cal.setFirstDayOfWeek(Calendar.MONDAY);//周一为一周第一天       cal.set(Calendar.DAY_OF_WEEK, cal.getFirstDayOfWeek());//取开始时间int weeks=cal.get(Calendar.WEEK_OF_YEAR);System.out.println(weeks);

以上代码在java环境中获取的weeks的值是46,然而在android环境中获取的weeks的值是45。匪夷所思

解决方法:

//代码编写时间:2015111714:40:12Calendar cal = Calendar.getInstance();//这一句必须要设置,否则美国认为第一天是周日,而我国认为是周一,对计算当期日期是第几周会有错误cal.setFirstDayOfWeek(Calendar.MONDAY); // 设置每周的第一天为星期一cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);// 每周从周一开始cal.setMinimalDaysInFirstWeek(7); // 设置每周最少为7天cal.setTime(new Date());int weeks=cal.get(Calendar.WEEK_OF_YEAR);System.out.println(weeks);

这样 在java 和 android 环境中获取的weeks的值是一致的,都是46。问题解决。。。

0 0
原创粉丝点击