这篇文章主要介绍了Java8中的本地日期时间和日期一些时间操作方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
先记录下jdk8之前的一些帮助方法
判断时间是否在现在的n天之内
/**
* 判断时间是否在现在的n天之内
* @param时间
* @param现在
* @param n正数表示在条件时间n天之后,负数表示在条件时间n天之前
* @返回
*/
public static boolean belong Date(Date time,Date now,int n) {
简单日期格式SDF=新建简单日期格式(' yyyy-MM-DD ');
日历日历=日历。getinstance();//得到日历
calendar.setTime(现在);//把当前时间赋给日历
calendar.add(日历。月日,n);
七天之前的日期=日历。gettime();//得到n前的时间
如果(7天前。gettime()时间。gettime()){
返回真实的
}否则{
返回错误的
}
}
判断某个时间是否是在条件的起始时间与结束时间之内
/**
* 判断时间是否在从,到之内
*
* @param时间指定日期
* @param来自开始日期
* @param to结束日期
* @返回
*/
public static boolean属于日历(日期时间,日期开始,日期结束){
日历日期=日历。getinstance();
date.setTime(时间);
日历在=日历之后。getinstance();
after.setTime(从);
之前的日历=日历。getinstance();
before.setTime(到);
如果(日期。日期之后。之前(之前)){
返回真实的
}否则{
返回错误的
}
}
判断给定时间与当前时间相差多少天
公共静态long getDistanceDays(字符串日期){
日期格式df=新的简单日期格式(' yyyy-MM-DD ');
长日=0;
尝试{
日期时间=df。解析(日期);//字符串转日期
Date now=new Date();//获取当前时间
长时间1=时间。gettime();
长时间2=现在。gettime();
long diff=时间1-时间2;
天数=diff/(1000 * 60 * 60 * 24);
} catch(异常e) {
e。printstacktrace();
}
返回天数;//正数表示在当前时间之后,负数表示在当前时间之前
}
将日期转换成线
private static final String LONG _ PATTERN=' yyyy-MM-DD HH:MM:ss ';
私有静态最终字符串SHORT _ PATTERN=' yyyy-MM-DD ';
/**
* 将日期转换为字符串
*/
公共静态字符串分析(日期d,字符串模式){
日期格式df=null
如果(格局!=null!''.等于(模式)){
df=新的简单日期格式(模式);
}否则{
df=新的简单日期格式(LONG _ PATTERN);
}
返回df。格式(d);
}
将线转换成日期
private static final String LONG _ PATTERN=' yyyy-MM-DD HH:MM:ss ';
私有静态最终字符串SHORT _ PATTERN=' yyyy-MM-DD ';
/**
* 将字符串转为日期
*/
公共静态日期parseStringToDate(字符串str,字符串模式){
日期格式df=null
如果(格局!=null!''.等于(模式)){
df=新的简单日期格式(模式);
}否则{
df=新的简单日期格式(LONG _ PATTERN);
}
日期d=空;
尝试{
d=df。parse(str);
} catch (ParseException e) {
e。printstacktrace();
}
返回d;
}
获取指定年后的日期(例如三年后的日期)
日历日期=日历。getinstance();
约会。settime(新日期());
date.add(日历。年,3);
//倒计时结束后的时间
日期报废_年份=日期。gettime();
System.out.println('三年后时间报废_年);
Jdk8改革
本地日期时间获取毫秒数
//获取秒数
Long秒=LocalDateTime.now().toEpochSecond(区域偏移。of(' 8 ');
//获取毫秒数
长的毫秒=LocalDateTime.now().toInstant(ZoneOffset.of(' 8 ')).toEpochMilli();
本地日期时间与线互转
//时间转字符串格式化
日期时间格式化程序=日期时间格式化程序。的模式(' yyyymmdd hhmmsssss ');
字符串日期时间=本地日期时间。现在(区域偏移。属于(' 8 ').格式(格式化程序);
//字符串转时间
字符串日期时间str=' 2018-07-28 14:11:15 ';
日期时间格式器。的模式(' yyyy-MM-DD HH:MM:ss ');
本地日期时间=本地日期时间。parse(datetimestr,df):
日期与本地日期时间互转
//将java.util.Date转换为java8的java.time.LocalDateTime,默认时区为东8区
public static local datetime datecoverttolocaldatetime(date)>
返回日期。toinstant().atOffset(ZoneOffset.of(' 8 ').tolocaldatetime();
}
//将java8的java.time.LocalDateTime转换为java.util.Date,默认时区为东8区
公共静态日期localdatetimeconverttodate(local datetime local datetime)& gt;
返回日期。从(本地日期时间。到常数)(zoneoffset)。的(' 8 ')返回日期。从(本地日期时间。到常数));
}
将本地日期时间转为自定义的时间格式的字符串
公共静态字符串getdatetimeassstring(local datetime local datetime,string格式)& gt
date time formatter=datetime formatter。of模式(格式):
返回localDateTime.format(格式化程序):
}
将某时间字符串转为自定义时间格式的本地日期时间
public static local datetime parse stringtodatetime(字符串时间,字符串格式)}
日期时间格式器df=日期时间格式器。of模式(格式);
返回LocalDateTime.parse(time,df):
}
将很长吗类型的时间戳转为本地日期时间
公共静态local datetime getdatetimetimetimestamp(长时间戳)}
瞬间=瞬间。奥费波奇米利(时间戳):
zoneid zone=zoneid。系统默认值();
返回本地日期时间。办公室常数(即时、区域):
}
将本地日期时间转为很长吗类型的时间戳
public static long gettimesinofdatetime(local datetime local datetime)& gt;
zoneid zone=zoneid。系统默认值();
instant=本地日期时间。设置一区域. tu常数();
返回即时。topocmilli();
}
总结美元
到此这篇关于Java8中的本地日期时间和日期一些时间操作方法的文章就介绍到这了,更多相关java8本地日期时间和日期内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。