jdk8处理时间
对当前时间格式化:
public static long getCurrentTimeMillis(String pattern) {
return Long.valueOf(toString(LocalDateTime.now(), pattern));
}
对指定日期进行格式化:
public static LocalDate toLocalDate(String date, String pattern) {
return LocalDate.parse(date, DateTimeFormatter.ofPattern(pattern)); }
public static String toString(LocalDate date, String pattern) {
return date.format(DateTimeFormatter.ofPattern(pattern));
}
// 计算偏移日期
public static LocalDate getOffsetLocalDate(LocalDate targetDate, ChronoUnit unit, long number) {
return targetDate.plus(number, unit);
} // 获取周一
public static LocalDate getFirstDayOfWeek(LocalDate localDate) {
return localDate.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY));
} // 获取周日
public static LocalDate getLastDayOfWeek(LocalDate localDate) {
return localDate.with(TemporalAdjusters.nextOrSame(DayOfWeek.SUNDAY));
} // 获取月初
public static LocalDate getFirstDayOfMonth(LocalDate localDate) {
return localDate.with(TemporalAdjusters.firstDayOfMonth());
} // 获取月末
public static LocalDate getLastDayOfMonth(LocalDate localDate) {
return localDate.with(TemporalAdjusters.lastDayOfMonth());
} // 获取季初
public static LocalDate getFirstDayOfQuarter(LocalDate localDate) {
int month = localDate.getMonthValue();
if (month >= 1 && month <= 3) {
return LocalDate.of(localDate.getYear(), 1, 1);
} else if (month >= 4 && month <= 6) {
return LocalDate.of(localDate.getYear(), 4, 1);
} else if (month >= 7 && month <= 9) {
return LocalDate.of(localDate.getYear(), 7, 1);
} else {
return LocalDate.of(localDate.getYear(), 10, 1);
} } // 获取季末
public static LocalDate getLastDayOfQuarter(LocalDate localDate) {
int month = localDate.getMonthValue();
if (month >= 1 && month <= 3) {
return LocalDate.of(localDate.getYear(), 3, 31);
} else if (month >= 4 && month <= 6) {
return LocalDate.of(localDate.getYear(), 6, 30);
} else if (month >= 7 && month <= 9) {
return LocalDate.of(localDate.getYear(), 9, 30);
} else {
return LocalDate.of(localDate.getYear(), 12, 31);
}
} // 获取半年初
public static LocalDate getFirstDayOfHalfYear(LocalDate localDate) {
int month = localDate.getMonthValue();
if (month >= 1 && month <= 6) {
return LocalDate.of(localDate.getYear(), 1, 1);
} else {
return LocalDate.of(localDate.getYear(), 7, 1);
} } // 获取半年末
public static LocalDate getLastDayOfHalfYear(LocalDate localDate) {
int month = localDate.getMonthValue();
if (month >= 1 && month <= 6) {
return LocalDate.of(localDate.getYear(), 6, 30);
} else {
return LocalDate.of(localDate.getYear(), 12, 31);
}
} // 获取年初
public static LocalDate getFirstDayOfYear(LocalDate localDate) {
return localDate.with(TemporalAdjusters.firstDayOfYear());
} // 获取年末
public static LocalDate getLastDayOfYear(LocalDate localDate) {
return localDate.with(TemporalAdjusters.lastDayOfYear());
} // 计算两个日期相差天数
public static long getIntervalDays(LocalDate localDate1, LocalDate localDate2) {
return Math.abs(localDate1.toEpochDay() - localDate2.toEpochDay());
}
jdk8处理时间的更多相关文章
- java JDK8 学习笔记——第13章 时间与日期
第十三章 时间与日期 13.1 认识时间与日期 13.1.1 时间的度量 1.格林威治标准时间GMT 格林威治标准时间的正午是太阳抵达天空最高点之时.现在已经不作为标准时间使用. 2.世界时UT世界时 ...
- JDK8新垃圾回收机制--G1垃圾回收机制
G1全称是Garbage First Garbage Collector,使用G1的目的是简化性能优化的复杂性.例如,G1的主要输入参数是初始化和最大Java堆大小.最大GC中断时间. G1 GC由Y ...
- 基于jdk8的格式化时间方法
背景 jdk8之前,java使用Date表示时间,在做时间的格式化时,通常使用SimpleDateFormat,但是SimpleDateFormat是非线程安全的,在写代码时通常要将之定义为局部变量或 ...
- 详解 JDK8 新增的日期时间类
JDK8 新增的日期时间类 在本人之前的博文<处理时间的类 -- System类.Date类 .SimpleDateFormat类 与 Calendar类>中,讲到过表示时间的类,有三类: ...
- JDK8 日期格式化
SpringBoot 是为了简化 Spring 应用的创建.运行.调试.部署等一系列问题而诞生的产物,自动装配的特性让我们可以更好的关注业务本身而不是外部的XML配置,我们只需遵循规范,引入相关的依赖 ...
- Day029 JDK8中新日期和时间API (二)
# JDK8中新日期和时间API (二) Instant介绍 Instant:时间线上的一个瞬时点. 这可能被用来记录应用程序中的事件时间 戳. 在处理时间和日期的时候,我们通常会想到年,月,日,时, ...
- JDK7和JDK8一些重要新特性
jdk7新特性(部分) switch支持字符串 List AutoCloseable接口实现自动关闭,在try()中 新增获取环境信息的工具方法,getJavaHomeDir,getUserHomeD ...
- Rust初步(四):在rust中处理时间
这个看起来是一个很小的问题,我们如果是在.NET里面的话,很简单地可以直接使用System.DateTime.Now获取到当前时间,还可以进行各种不同的计算或者输出.但是这样一个问题,在rust里面, ...
- android开发环境搭建(ubuntu15.04+jdk8+eclipse+android sdk)
开始学习android开发,首先对其环境对搭建比较重要.平台可以选择window/linux/mac等,这里,我选择ubuntu系统,方法比较原始,当然也可以直接用google提供的android s ...
随机推荐
- Problem opening .cshtml files
Hi Spartai, Welcome to MSDN forum. What is the version of your Visual Studio? It`s works fine for me ...
- python-并发编程之进程
进程 python中创建进程模块为:multiprocessing 开销非常大 是计算机中资源分配的最小单位(内存隔离) 能利用多个CPU 由操作系统控制 同时操作内存之外的数据会产生数据的不安全 进 ...
- 开发效率优化之自动化构建系统Gradle(二)上篇
阿里P7移动互联网架构师进阶视频(每日更新中)免费学习请点击:https://space.bilibili.com/474380680 本篇文章将以下两个内容来介绍自动化构建系统Gradle: gra ...
- Python 如何debug
一.常见错误: 1.漏了末尾的冒号,如 if语句,循环语句,定义函数 2.缩进错误,该缩进的时候没有缩进 3.把英文符号写成中文符号,如: ' ' () , 4.字符串拼接,把字符串和数字拼接一起 ...
- git 的版本控制
作为全球第一大代码托管平台,github 成为了许多人的选择,所以这里写一下关于GitHub的有关知识,写这个的目的还是巩固自己的学习,一方面可以提高自己,另一方面回头看一下,有什么更深层次的东西还可 ...
- MySQL - Lock wait timeout exceeded
今天突然出了个奇怪的问题,原本正常启动的项目,在什么都没有修改的情况下,启动到一半的时候会卡住几分钟,几分钟后又成功启动了,刚好是卡在Quartz那里,还以为出什么奇奇怪怪的幺蛾子了,一看日志,数据库 ...
- ASE: CODEnn Reproduce
Background 第二次结对编程的任务是挑选一个用自然语言搜索相关代码片段的模型实现,并且可以提出自己的想法改进.这个任务很cool,前期做了不少调研.使用自然语言搜索相关代码片段现在是个很受关注 ...
- 二进制搭建一个完整的K8S集群部署文档
服务器规划 角色 IP 组件 k8s-master1 192.168.31.63 kube-apiserver kube-controller-manager kube-scheduler etcd ...
- Tomcat免安装版踩坑
下载解压 从官网下载Tomcat的压缩包解压到硬盘上(这里用的是toncat7),解压之后目录如下(Windows) bin 存放tomcat的一些命令脚本 conf 存放配置文件 lib 存放运行时 ...
- mobx中使用class语法或decorator修饰器时报错
之前课程中老师用的babel的版本比较低,我在学习时安装的babel版本较高,因此每当使用class语法或decorator修饰器时都会出现一些报错的情况! ❌ ERROR in ./src/inde ...