java获得当前日期是今年的第几周,以及这周的开始日期的方法
直接上代码,备份使用
时间戳,长整型存储
long startTime1 = 1530613938532l;
Calendar calendar = Calendar.getInstance();
calendar.setFirstDayOfWeek(Calendar.MONDAY);//设置星期一为一周开始的第一天
calendar.setMinimalDaysInFirstWeek(4);//可以不用设置
calendar.setTimeInMillis(System.currentTimeMillis());//获得当前的时间戳
int weekYear = calendar.get(Calendar.YEAR);//获得当前的年
int weekOfYear = calendar.get(Calendar.WEEK_OF_YEAR);//获得当前日期属于今年的第几周
System.out.println("第几周:"+weekOfYear);
calendar.setWeekDate(weekYear, weekOfYear, 2);//获得指定年的第几周的开始日期
long starttime = calendar.getTime().getTime();//创建日期的时间该周的第一天,
calendar.setWeekDate(weekYear, weekOfYear, 1);//获得指定年的第几周的结束日期
long endtime = calendar.getTime().getTime();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
String dateStart = simpleDateFormat.format(starttime);//将时间戳格式化为指定格式
String dateEnd = simpleDateFormat.format(endtime);
System.out.println(dateStart);
System.out.println(dateEnd);
这个获取第几周的方法在跨年周上会出现问题
上面这种方式用来获取指定日期的周开始日期和结束日期是可以的,用来判断当前日期属于第几周则不行
在中华人民共和国,包含1月4日的那个星期为当年的第一个星期
链接:https://www.zhihu.com/question/33649214/answer/129104583
依据:
根据中华人民共和国国家标准GB/T 7408-2005《数据元和交换格式信息交换日期和时间表示法》中4.3.3.2部分:
根据中华人民共和国国家标准GB/T 7408-2005《数据元和交换格式信息交换日期和时间表示法》中4.3.3.2部分:
即一年中的第一个 日历星期包括该年的第一个星期四,并且日历年的最后一个日历星期就是在下一个日历年的第一个日历星期之前的那个星期,日历星期数是其在该年中的顺序。以及其注释:
注 4:确定第1个日历星期的规则与规则“第一个 日历星期包含1月4日的星期”是等同的。
作者:海绵般汲取
出处:https://www.cnblogs.com/gne-hwz/
版权:本文版权归作者和博客园共有
转载:欢迎转载,但未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任
出处:https://www.cnblogs.com/gne-hwz/
版权:本文版权归作者和博客园共有
转载:欢迎转载,但未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任