jdk1.8 时间工具类,可以满足基本操作
时间工具类
public static final String DEFAULT_DATE_FORMAT = "yyyy-MM-dd";
public static final String DEFAULT_TIME_FORMAT = "HH:mm:ss";
public static final String DEFAULT_DATETIME_FORMAT = "yyyy-MM-dd HH:mm:ss"; /**
* 格式化后的日期字符串,默认使用 yyyy-MM-dd HH:mm:ss
* @param localDateTime
* @return formatDateToString
*/
public static String formatDateToString(LocalDateTime localDateTime){
return localDateTime.format(DateTimeFormatter.ofPattern(DEFAULT_DATETIME_FORMAT));
} /**
* 根据给定的格式把时间转换为字符串
* @param localDateTime 要格式化的日期
* @param format 转换格式
* @return formatDateToString
*/
public static String formatDateToString(LocalDateTime localDateTime , String format){
if (null != localDateTime){
return localDateTime.format(DateTimeFormatter.ofPattern(format));
} else {
return null;
}
} /**
* 字符转换为时间,默认使用yyyy-MM-dd HH:mm:ss格式
* @param date
* @return LocalDateTime
*/
public static LocalDateTime formatStringToDate(String date){
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(DEFAULT_DATETIME_FORMAT);
return LocalDateTime.parse(date,dateTimeFormatter);
} /**
* 字符转换为时间,默认使用yyyy-MM-dd HH:mm:ss格式
* @param data 日期字符串
* @param format 转换格式
* @return LocalDateTime
*/
public static LocalDateTime formatStringToDate(String data,String format){
if (null != data && ! data.equals("")){
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(format);
return LocalDateTime.parse(data,dateTimeFormatter);
} else {
return null;
}
} /**
* 将LocalDateTime转为long类型的timestamp
* @param localDateTime
* @return long
*/
public static long getTimestampOfDateTime(LocalDateTime localDateTime){
ZoneId zoneId = ZoneId.systemDefault();
Instant instant = localDateTime.atZone(zoneId).toInstant();
return instant.toEpochMilli();
} /**
* 将long类型的timestamp转为LocalDateTime
* @param timestamp
* @return LocalDateTime
*/
public static LocalDateTime getDateTimeOfTimestamp(long timestamp){
Instant instant = Instant.ofEpochMilli(timestamp);
ZoneId zoneId = ZoneId.systemDefault();
return LocalDateTime.ofInstant(instant,zoneId);
} /**
* 判断一个日期是否在指定日期之后
* @param data 要比较的日期
* @param afterData 指定的日期
* @param format 格式
* @return boolean
*/
public static boolean isAfter(String data , String afterData , String format){
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(format);
LocalDateTime datas = LocalDateTime.parse(data,dateTimeFormatter);
LocalDateTime afterDa = LocalDateTime.parse(afterData , dateTimeFormatter);
return datas.isAfter(afterDa);
} /**
* 判断一个日期是否在指定日期之前
* @param data 要比较的日期
* @param before 指定的日期
* @param format 格式
* @return boolean
*/
public static boolean isBefore(String data,String before ,String format){
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(format);
LocalDateTime datas = LocalDateTime.parse(data,dateTimeFormatter);
LocalDateTime afterDa = LocalDateTime.parse(before , dateTimeFormatter);
return datas.isBefore(afterDa);
} /**
* 判断是否为闰年
* @param data 日期 格式:yyyy-MM-dd
* @return boolean
*/
public static boolean isLeapYear(String data){
LocalDate yeat = LocalDate.parse(data);
return yeat.isLeapYear();
} /**
* 判断是否为闰年
* @param localDate 日期 格式:yyyy-MM-dd
* @return boolean
*/
public static boolean isLeapYear(LocalDate localDate){
return localDate.isLeapYear();
} /**
* 当前时间加减年
* @param years 年
* @return
*/
public static LocalDateTime plusYears(int years){
LocalDateTime localDateTime = LocalDateTime.now();
return localDateTime.plusYears(years);
} /**
* 当前时间加减月
* @param months 月份
* @return
*/
public static LocalDateTime plusMonths(int months){
LocalDateTime localDateTime = LocalDateTime.now();
return localDateTime.plusMonths(months);
} /**
* 当前时间加减日
* @param days 日
* @return
*/
public static LocalDateTime plusDays(int days){
LocalDateTime localDateTime = LocalDateTime.now();
return localDateTime.plusDays(days);
} /**
* 当前时间加减星期
* @param weeks 星期
* @return
*/
public static LocalDateTime plusWeeks(int weeks){
LocalDateTime localDateTime = LocalDateTime.now();
return localDateTime.plusWeeks(weeks);
} /**
* 当前时间加上几个小时,传入负数减去对应的时间
* @param hours 时间:单位小时
* @return LocalDateTime
*/
public static LocalDateTime plusHours(int hours){
LocalDateTime localDateTime = LocalDateTime.now();
return localDateTime.plusHours(hours);
} /**
* 当前时间加上几分钟,传入负数减去对应的时间
* @param minutes 时间:单位分钟
* @return LocalDateTime
*/
public static LocalDateTime plusMinutes(int minutes){
LocalDateTime localDateTime = LocalDateTime.now();
return localDateTime.plusMinutes(minutes);
} /**
* 当前时间加上几秒钟,传入负数减去对应的时间
* @param seconds 时间:单位秒
* @return LocalDateTime
*/
public static LocalDateTime plusSeconds(int seconds){
LocalDateTime localDateTime = LocalDateTime.now();
return localDateTime.plusSeconds(seconds);
} /**
* 修改当前时间的小时
* @param hour 时间:单位小时
* @return LocalDateTime
*/
public static LocalDateTime withHour(int hour){
LocalDateTime localDateTime = LocalDateTime.now();
return localDateTime.withHour(hour);
} /**
* 修改当前时间的分钟
* @param minute 时间:单位分钟
* @return LocalDateTime
*/
public static LocalDateTime withMinute(int minute){
LocalDateTime localDateTime = LocalDateTime.now();
return localDateTime.withMinute(minute);
} /**
* 修改当前时间的秒
* @param second 时间:单位秒
* @return LocalDateTime
*/
public static LocalDateTime withSecond(int second){
LocalDateTime localDateTime = LocalDateTime.now();
return localDateTime.withSecond(second);
} /**
* 给指定的时间加年
* @param data 指定时间
* @param years 要加上的年份负数为减去
* @return LocalDateTime
*/
public static LocalDateTime addYears(String data , int years){
LocalDateTime localDateTime = formatStringToDate(data);
return localDateTime.plusYears(years);
} /**
* 给指定的时间加月
* @param data 指定时间
* @param months 要加上的月负数为减去
* @return LocalDateTime
*/
public static LocalDateTime addMonths(String data , int months){
LocalDateTime localDateTime = formatStringToDate(data);
return localDateTime.plusMonths(months);
} /**
* 给指定的时间加日
* @param data 指定时间
* @param days 要加上的日负数为减去
* @return LocalDateTime
*/
public static LocalDateTime addDays(String data , int days){
LocalDateTime localDateTime = formatStringToDate(data);
return localDateTime.plusDays(days);
} /**
* 给指定的时间加星期
* @param data 指定时间
* @param weeks 要加上的星期负数为减去
* @return LocalDateTime
*/
public static LocalDateTime addWeeks(String data, int weeks){
LocalDateTime localDateTime = formatStringToDate(data);
return localDateTime.plusWeeks(weeks);
} /**
* 给指定时间加小时
* @param data 指定时间
* @param hour 要加上的小时负数为减去
* @return LocalDateTime
*/
public static LocalDateTime addHours(String data , int hour){
LocalDateTime localDateTime = formatStringToDate(data);
return localDateTime.plusHours(hour);
} /**
* 给指定时间加分钟
* @param data 指定时间
* @param minutes 要加上的分钟负数为减去
* @return LocalDateTime
*/
public static LocalDateTime addMinutes(String data , int minutes){
LocalDateTime localDateTime = formatStringToDate(data);
return localDateTime.plusMinutes(minutes);
} /**
* 给指定时间加秒
* @param data 指定时间
* @param seconds 要加上的秒负数为减去
* @return LocalDateTime
*/
public static LocalDateTime addSeconds(String data , int seconds){
LocalDateTime localDateTime = formatStringToDate(data);
return localDateTime.plusSeconds(seconds);
} /**
* 计算两个时间相差多少年,结果为负数说明前面的时间比后面的时间大
* @param time1 时间一
* @param time2 时间二
* @return long
*/
public static long minusYears(String time1 ,String time2){
LocalDateTime localDateTime = formatStringToDate(time1);
LocalDateTime localDateTime2 = formatStringToDate(time2);
return ChronoUnit.YEARS.between(localDateTime,localDateTime2);
} /**
* 计算两个时间相差多少月,结果为负数说明前面的时间比后面的时间大
* @param time1 时间一
* @param time2 时间二
* @return long
*/
public static long minusMonths(String time1 ,String time2){
LocalDateTime localDateTime = formatStringToDate(time1);
LocalDateTime localDateTime2 = formatStringToDate(time2);
return ChronoUnit.MONTHS.between(localDateTime,localDateTime2);
} /**
* 计算两个时间相差多少天,结果为负数说明前面的时间比后面的时间大
* @param time1 时间一
* @param time2 时间二
* @return long
*/
public static long minusDays(String time1 ,String time2){
LocalDateTime localDateTime = formatStringToDate(time1);
LocalDateTime localDateTime2 = formatStringToDate(time2);
return ChronoUnit.DAYS.between(localDateTime,localDateTime2);
} /**
* 计算两个时间相差多少星期,结果为负数说明前面的时间比后面的时间大
* @param time1 时间一
* @param time2 时间二
* @return long
*/
public static long minusWeeks(String time1 ,String time2){
LocalDateTime localDateTime = formatStringToDate(time1);
LocalDateTime localDateTime2 = formatStringToDate(time2);
return ChronoUnit.WEEKS.between(localDateTime,localDateTime2);
} /**
* 计算两个时间相差多少小时,结果为负数说明前面的时间比后面的时间大
* @param time1 时间一
* @param time2 时间二
* @return long
*/
public static long minusHours(String time1 ,String time2){
LocalDateTime localDateTime = formatStringToDate(time1);
LocalDateTime localDateTime2 = formatStringToDate(time2);
return ChronoUnit.HOURS.between(localDateTime,localDateTime2);
} /**
* 计算两个时间相差多少分钟,结果为负数说明前面的时间比后面的时间大
* @param time1 时间一
* @param time2 时间二
* @return long
*/
public static long minusMinutes(String time1 ,String time2){
LocalDateTime localDateTime = formatStringToDate(time1);
LocalDateTime localDateTime2 = formatStringToDate(time2);
return ChronoUnit.MINUTES.between(localDateTime,localDateTime2);
} /**
* 计算两个时间相差多少秒,结果为负数说明前面的时间比后面的时间大
* @param time1 时间一
* @param time2 时间二
* @return long
*/
public static long minusSeconds(String time1 ,String time2){
LocalDateTime localDateTime = formatStringToDate(time1);
LocalDateTime localDateTime2 = formatStringToDate(time2);
return ChronoUnit.MINUTES.between(localDateTime,localDateTime2);
} /**
* 获取传入时间的年份
* @param localDateTime 时间
* @return
*/
public static int getYear(LocalDateTime localDateTime){
return localDateTime.getYear();
} /**
* 获取传入时间的月份
* @param localDateTime 时间
* @return
*/
public static int getMonth(LocalDateTime localDateTime){
return MyMonth.getMonth(localDateTime.getMonth().toString());
} /**
* 获取传入时间的日
* @param localDateTime 时间
* @return
*/
public static int getDay(LocalDateTime localDateTime){
return localDateTime.getDayOfMonth();
} /**
* 获取传入时间是星期几
* @param localDateTime 时间
* @return Integer
*/
public static Integer getWeek(LocalDateTime localDateTime){
return MyDayOfWeek.getDayWeek(localDateTime.getDayOfWeek().toString());
} /**
* 获取传入时间是一年中的第几天
* @param localDateTime 时间
* @return Integer
*/
public static Integer getDayOfYear(LocalDateTime localDateTime){
return localDateTime.getDayOfYear();
} /**
* 获取传入时间的时
* @param localDateTime 时间
* @return
*/
public static int getHour(LocalDateTime localDateTime){
return localDateTime.getHour();
} /**
* 获取传入时间的分
* @param localDateTime 时间
* @return
*/
public static int getMinutes(LocalDateTime localDateTime){
return localDateTime.getMinute();
} /**
* 获取传入时间的秒
* @param localDateTime 时间
* @return
*/
public static int getSeconds(LocalDateTime localDateTime){
return localDateTime.getSecond();
}
另外加上两个附带使用到的工具类,在获取月份和星期的时候使用
package com.xy.studyboot.util; /**
* WJY
*/
public enum MyMonth { JANUARY(1,"JANUARY"),
FEBRUARY(2,"FEBRUARY"),
MARCH(3,"MARCH"),
APRIL(4,"APRIL"),
MAY(5,"MAY"),
JUNE(6,"JUNE"),
JULY(7,"JULY"),
AUGUST(8,"AUGUST"),
SEPTEMBER(9,"SEPTEMBER"),
OCTOBER(10,"OCTOBER"),
NOVEMBER(11,"NOVEMBER"),
DECEMBER(12,"DECEMBER"); private int month; private String value; private MyMonth(int month,String value){
this.month = month;
this.value = value;
} public static Integer getMonth(String value){
for (MyMonth myMonth: MyMonth.values()){
if (myMonth.getValue().equals(value)){
return myMonth.getMonth();
}
}
return null;
} public int getMonth() {
return month;
} public String getValue() {
return value;
}
}
package com.xy.studyboot.util; /**
* WJY
*/
public enum MyDayOfWeek { MONDAY(1,"MONDAY"),
TUESDAY(2,"TUESDAY"),
WEDNESDAY(3,"WEDNESDAY"),
THURSDAY(4,"THURSDAY"),
FRIDAY(5,"FRIDAY"),
SATURDAY(6,"SATURDAY"),
SUNDAY(7,"SUNDAY"); private int day; private String value; private MyDayOfWeek(int day , String value){
this.day = day;
this.value = value;
} public static Integer getDayWeek(String value){
for (MyDayOfWeek dayOfWeek : MyDayOfWeek.values()){
if (dayOfWeek.getValue().equals(value)){
return dayOfWeek.getDay();
}
}
return null;
} public int getDay() {
return day;
} public String getValue() {
return value;
} }
jdk1.8 时间工具类,可以满足基本操作的更多相关文章
- 代码片段:基于 JDK 8 time包的时间工具类 TimeUtil
摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! “知识的工作者必须成为自己时间的首席执行官.” 前言 这次泥瓦匠带来的是一个好玩的基于 JDK ...
- Java日期工具类,Java时间工具类,Java时间格式化
Java日期工具类,Java时间工具类,Java时间格式化 >>>>>>>>>>>>>>>>>&g ...
- 小记Java时间工具类
小记Java时间工具类 废话不多说,这里主要记录以下几个工具 两个时间只差(Data) 获取时间的格式 格式化时间 返回String 两个时间只差(String) 获取两个时间之间的日期.月份.年份 ...
- 超详细的Java时间工具类
package com.td.util; import java.sql.Timestamp; import java.text.ParseException; import java.text.Pa ...
- java时间工具类
在项目中,很多地方需要根据时间获取相应的数据,将时间格式化,或者时间比较等相关操作.一个良好的工具类不仅可以减少代码冗余,还能促进业务处理,加快进度. /** * @author: lxw * @Da ...
- 基于Java8的日期时间工具类DateTimeFormatter
原文:https://blog.csdn.net/qq_36596145/article/details/85331002 import java.time.Instant; import java. ...
- Apache Commons Lang之日期时间工具类
码农不识Apache,码尽一生也枉然. FastDateFormat FastDateFormat是一个快速且线程安全的时间操作类,它完全可以替代SimpleDateFromat.因为是线程安全的,所 ...
- Java8 ,LocalDate,LocalDateTime处理日期和时间工具类,
Java8 ,LocalDate,LocalDateTime处理日期和时间工具类 1.获取今天的日期 2.在Java 8 中获取年.月.日信息 3.在Java 8 中处理特定日期 4.在Java 8 ...
- java8时间类API安全问题(赠送新的时间工具类哟)
LocalDateTime等新出的日期类全是final修饰的类,不能被继承,且对应的日期变量都是final修饰的,也就是不可变类.赋值一次后就不可变,不存在多线程数据问题. simpleDateFor ...
随机推荐
- 使用webgl(three.js)创建科技版3D机房,3D机房微模块详细介绍(升级版三)—— 1
上节课已经详细描述了微模块机房的实现过程,文章地址(https://www.cnblogs.com/yeyunfei/p/10484241.html) 紧接着上节课的内容 我们这节可来详细讲解科技版机 ...
- Java—构造方法及this/super/final/static关键字
构造方法 构建创造时用的方法,即就是对象创建时要执行的方法. //构造方法的格式: 修饰符 构造方法名(参数列表) { } 构造方法的体现: 构造方法没有返回值类型.也不需要写返回值.因为它是为构建对 ...
- Ng-Matero V10 正式发布!
Angular v10 在六月下旬就悄无声息的发布了,虽然 v9 的发布延期了两个月,但是 v10 并没有受影响,仍然如期而至. 相比 v9 的重量级发布,v10 并没有颠覆性的变化,主要还是 bug ...
- 快速排序&&归并排序
快速排序 快速排序采用的是分治的策略,算法的具体实现过程是 1.确定一个数X(一般是选中间值X=q[l+r>>1]) 2.利用指针i,j,将数组中比X小的数放在一边,比X大的数放在另一边 ...
- Shell脚本之for循环语句的应用
在实际工作中,经常会遇到某项任务需要多次执行的情况,而每次执行时仅仅是处理的对象不一样,其他命令相同.这时候可以使用for循环语句,针对不同的取值重复执行相同的命令序列. for循环语句的语法结构: ...
- 用C++写一个电话通讯录
目前我也是名初学C++的菜鸟,一直在B站上看的C++的网课,这个的C++电话通讯录是我写的第一个有一些功能的代码,所以在这里想分享给初学C++的小白们,如有任何问题或是建议可以在下方评论或是私信我,下 ...
- Mysql Lost connection to MySQL server at ‘reading initial communication packet', system error: 0
在用Navicat for MySQL远程连接mysql的时候,出现了 Lost connection to MySQL server at ‘reading initial communicatio ...
- 【接口自动化】Python+Requests接口自动化测试框架搭建【三】
经过上两篇文章的讲解,我们已经完成接口自动化的基础框架,现在开始根据实际项目丰满起来. 在PyCharm中新建项目,项目工程结构如下: config:配置文件夹,可以将一些全局变量放于配置文件中,方便 ...
- ASP.Net中的async+await异步编程
在.NET Framework4.5框架.C#5.0语法中,通过async和await两个关键字,引入了一种新的基于任务的异步编程模型(TAP).在这种方式下,可以通过类似同步方式编写异步代码,极大简 ...
- keepalived的工作原理解析以及安装使用
一.keepalived keepalived是集群管理中保证集群高可用的一个服务软件,其功能类似于heartbeat,用来防止单点故障. keepalived官网http://www.keepali ...