Java8日期常用API
2023-03-31 10:45:32 时间
Java8 LocalDate常用API
每日
获取当前日期
//获取当前系统所属时区的当前日期
LocalDate now = LocalDate.now();
//获取指定日期
LocalDate date = LocalDate.of(2022, 10, 20);
//获取指定时区的当前日期
ZoneId zoneId = ZoneId.of("Africa/Cairo");
LocalDate utc = LocalDate.now(zoneId);
//获取指定年份指定天数的日期
LocalDate ofYearDay = LocalDate.ofYearDay(2022, 100);
获取日期所属年份、月份、日期,第几周、星期几
LocalDate date = LocalDate.now();
//获取日期所属年份
int year = date.getYear();
System.out.println("当前日期所属年份: " + year );
//获取日期所属月份
int monthValue = date.getMonthValue();
System.out.println("当前日期所属月份: " + monthValue );
//获取日期所属月份的是几号
int dayOfMonth = date.getDayOfMonth();
System.out.println("当前日期是几号: " + dayOfMonth);
//获取日期在当前年份下是第几周
int week = date.get(WeekFields.ISO.weekOfYear());
System.out.println("当前日期是当前年份的第几周: " + week);
//获取日期是星期几 value值从 1至7 即周一到周日
int dayOfWeek = date.getDayOfWeek().getValue();
System.out.println("当前日期是星期[" + dayOfWeek + "]");
日期比较
LocalDate startDate = LocalDate.of(2022,11,1);
LocalDate endDate = LocalDate.of(2022,11,5);
//日期大小比较
if(startDate.isBefore(endDate)) {
System.out.println("2022-10-5 是在 2022-11-05之 【前】 的");
}
if(endDate.isAfter(startDate)) {
System.out.println("2022-11-5 是在 2022-10-05之 【后】 的");
}
if(endDate.isEqual(LocalDate.of(2022,11,5))) {
System.out.println("两个日期相等");
}
//获取两个仅相差一月以内的日期相差多少天 注意: 仅适用于两个日期相差一个月以内
int result = Period.between(startDate, endDate).getDays();
// 区分正负 如果要取绝对值 可用 Math.abs();
if(result > 0) {
System.out.println("endDate 大于StartDate");
}
if(result < 0) {
System.out.println("endDate 小于StartDate");
}
//获取两个日期相差多少天 推荐使用
long day = endDate.toEpochDay() - startDate.toEpochDay();
每周
根据周获取日期
//获取指定周,指定周几
int year = 2022; // 2022年
int week = 11; // 11周
DayOfWeek dayOfWeek = DayOfWeek.MONDAY; // 周一
//周数小于10在前面补个0
String numStr = week < 10 ? "0" + week : String.valueOf(week);
//2019-W01-01获取第一周的周一日期,2019-W02-07获取第二周的周日日期
String weekDate = String.format("%s-W%s-%s", year, numStr, dayOfWeek.getValue());
LocalDate date = LocalDate.parse(weekDate, DateTimeFormatter.ISO_WEEK_DATE);
System.out.println(date);
每月
int year = 2022;
int month = 2;
// 获取指定年份的指定月份有多少天
LocalDate date = LocalDate.of(year,month,1);
int lengthOfMonth = date.lengthOfMonth();
System.out.println("2022年2月有" + lengthOfMonth + "天");
// 获取指定月的最后一天
LocalDate monthLastDay = LocalDate.of(year, month, lengthOfMonth);
相关文章
- Python中的函数与方法 以及Bound Method和Unbound Method
- 一文贯通python文件读取
- Python 中的异步编程:Asyncio
- 7个你现在就该学习Python的理由
- 提高Python运行效率的六个窍门
- Python数据科学:神经网络
- 一篇文章看懂大数据分析就业前景及职能定位
- R和Python中的文本挖掘:8个入门小贴士
- 告诉你为什么Python有点慢,但我却无所谓?
- 专注学习DevOps编程语言Top 5推荐
- Python发送邮件脚本
- Python多进程并行编程实践: mpi4py 的使用
- Python语言在未来的发展前景
- Python vs Ruby: 谁是最好的 web 开发语言?
- Python对Ruby:谁在Web开发领域更胜一筹?
- Python一行代码完成并行任务
- Python开发者2017应该关注的七个类库
- python爬虫入门基本知识
- 在终端中优雅地编写Python
- Python机器学习实战:信用卡欺诈检测