java localdate获取自然周
ISO8601自然周
自然周的标准很多。其中以ISO8601 为准。
可以看到一年的第一个自然周应当满足:
- 有第一个星期四
- 包含1月4号
- 第一个自然周应当有4个或者4个以上的天数
- 这个星期开始的时间(即周一)在去年的12月29号(星期一)到今年的1月4号之间
所以如果1月1号是周一、周二、周三或者周四,它属于第一个自然周,如果不是,他属于去年的52周或者53周。
mysql week()获取自然周
这里我们可以看week传入两个参数,一个是日期,一个是模式。模式分为表中的几种,默认是0。在表中有一句话“with 4 or more days this year,”代表该模式遵循的是ISO标准。在mysql中更为常用的是
WEEKOFYEAR(date)
函数,实际上也等价于WEEK(date,3).
java8 localdate 获取自然周
java8对时间类型的支持和joda非常相似,但是比joda还要开放。所以标准就很重要,希望大家能理解一下上面ISO标准。
java8对自然周的支持主要体现java.time.temporal.WeekFields
这个类中。
其初始化有几种方式,这里讲两种,第一种是WeekFields.of(DayOfWeek firstDayOfWeek, int minimalDaysInFirstWeek)
:
WeekFields weekFields = WeekFields.of(DayOfWeek.MONDAY,4);
第一个参数代表周是按周几开始,第二个是限定第一个自然周最少要几天。结合ISO标准我们应当像上面那样进行初始化。
第二种方式是:WeekFields weekFields1 = WeekFields.ISO;
这样。查看源码发现:public static final WeekFields ISO = new WeekFields(DayOfWeek.MONDAY, 4);
调用了内部私有的构造方法。实际上和第一种大同小异。
具体实现获取
LocalDate localDate1 = LocalDate.now();WeekFields weekFields = WeekFields.of(DayOfWeek.MONDAY,4);return localDate.get(weekFields.weekOfWeekBasedYear());
这里的return返回的就是符合ISO标准的自然周。当然关于weekfieldsd的初始化我更加推荐第二种。
另外weekFields的有两个获取自然周的实例方法weekOfYear()和weekOfWeekBasedYear()
他们的差异当weekOfYear()
第一周少于最小天数时会返回0,另一个则是返回1或者去年的末尾周:
详见各API文档。如文章有错请各位大佬及时纠正,评论留言。
java localdate获取自然周相关推荐
- java8 LocalDate获取自然周的方法
java8 LocalDate获取自然周的方法 最近在做项目的时候要获取日期所在月份的第几周,刚开始是使用localDate.of(ChronoField.ALIGNED_WEEK_OF_MONTH) ...
- PHP获取自然周始末时间
之前做了一个项目做抽奖的,里面有个需求,每个用户每个自然周能抽中一次指定产品. 自然周指的是:从周一到周日算作一个自然周. 但是作为PHP中的lower,还是能力捉急,只好百度 还挺多的嘛!想也不想先 ...
- 获取自然周 自然月 区间
public static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");/*** @Descri ...
- 获取自然周;一年中总的周数,以及当前日期处于第几周
https://dayjs.fenxianglu.cn/ 插件 主要代码: let year = dayjs().year() // 默认今年 let date = dayjs().format('Y ...
- PHP获取自然周日期(周一~周日)
使用date()函数:PHP: date - Manual w 星期中的第几天,数字表示 0(表示星期天)到 6(表示星期六) $time = time(); // 可设定日期$week_day_nu ...
- Java如何获取今天周几
Map<Integer, String> weekMap = new HashMap<>(7);weekMap.put(1, "星期日");weekMap. ...
- java 获取当前时间所在自然周起止时间及自然周中的每一天
有的时候需要获取当前时间所在自然周中的起始和截止时间,或者某个时间段内里的每一天的日期 1.先来解决获取自然周中的起止时间 /*** 获取当前时间所在自然周的起止日期** @return*/publi ...
- Calendar自然周
java中Calendar类获取的自然周是从周日到周六,但是我们理解的一周是从周一到周日.所以依然使用Calendar记录weekOfYear,dayOfWeek会有两个问题: 1.周日这一天,按照两 ...
- 获取某一年指定自然周的开始时间和结束时间
获取某一年指定自然周的开始时间和结束时间 package com.playmath.playmathcrm.util; import java.text.ParseException; import ...
最新文章
- php redis安装使用
- 枚举类型的定义与使用
- 重启openstack服务_如何“ Kubernetize” OpenStack服务
- eclipse安装Android模拟器genymotion及其插件
- oracle初级系列教程
- Ajax到底是什么?
- 我新浪的免费邮箱这段时间总是登不上去或是不稳定
- iOS软件开发揭密:iPhoneiPad企业应用和游戏开发(china-pub首发)
- HIVE 面试题总结
- Petalinux EMMC启动
- 打造最美HTML5 3D机房(第三季新增资产管理、动环监控)
- JAVA/JS针对常见的字符数据处理的一个总结(JS截取字符串,判断是否包含某个字符串及它出现的次数;JAVA数据四舍五入,去掉科学计数法,截取特定符号之前或之后的数据)
- 解决导入MySQL数据库提示“Unknown character set: ‘utf8mb4‘“错误
- webpack4 搭建 Vue 开发环境笔记
- 计算机网络可靠传输是什么意思,可靠传输
- 【Vivado使用误区与进阶】XDC约束技巧之时钟篇
- js检测数据类型四种办法
- fastboot 模式下刷入Recovery
- Keras深度学习实战(36)——基于编码器-解码器的机器翻译模型
- 缺磷YNB (含硫酸铵,不含氨基酸)的成分
热门文章
- CDH集群搭建(CDH 6.0.1)
- 零基础怎么系统学习大数据?
- 英语学习——长难句01
- 小米盒子 改装 无线打印服务器,终于找到了“小米盒子增强版”不定期断网的bug了,2.4G模块bug!...
- 国家示范性高职院校名单(109所)
- unity如何插入图片_unity 图片导入及其使用方法
- jQuery笔记——工具函数——jQuery标志
- Airtest 入门
- 阿里投资分众,大战在即的电梯广告市场却有本糊涂账?
- linux文件扫描并打印,Linux办公一条龙—Linux中扫描、打印的实现