Java8中的LocalDateTime和Date一些时间操作方法
先记录下jdk8之前的一些帮助方法
判断time是否在now的n天之内
/**
*判断time是否在now的n天之内
*@paramtime
*@paramnow
*@paramn正数表示在条件时间n天之后,负数表示在条件时间n天之前
*@return
*/
publicstaticbooleanbelongDate(Datetime,Datenow,intn){
SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");
Calendarcalendar=Calendar.getInstance();//得到日历
calendar.setTime(now);//把当前时间赋给日历
calendar.add(Calendar.DAY_OF_MONTH,n);
Datebefore7days=calendar.getTime();//得到n前的时间
if(before7days.getTime()
判断某个时间是否是在条件的起始时间与结束时间之内
/**
*判断time是否在from,to之内
*
*@paramtime指定日期
*@paramfrom开始日期
*@paramto结束日期
*@return
*/
publicstaticbooleanbelongCalendar(Datetime,Datefrom,Dateto){
Calendardate=Calendar.getInstance();
date.setTime(time);
Calendarafter=Calendar.getInstance();
after.setTime(from);
Calendarbefore=Calendar.getInstance();
before.setTime(to);
if(date.after(after)&&date.before(before)){
returntrue;
}else{
returnfalse;
}
}
判断给定时间与当前时间相差多少天
publicstaticlonggetDistanceDays(Stringdate){
DateFormatdf=newSimpleDateFormat("yyyy-MM-dd");
longdays=0;
try{
Datetime=df.parse(date);//String转Date
Datenow=newDate();//获取当前时间
longtime1=time.getTime();
longtime2=now.getTime();
longdiff=time1-time2;
days=diff/(1000*60*60*24);
}catch(Exceptione){
e.printStackTrace();
}
returndays;//正数表示在当前时间之后,负数表示在当前时间之前
}
将Date转换成String
privatestaticfinalStringLONG_PATTERN="yyyy-MM-ddHH:mm:ss";
privatestaticfinalStringSHORT_PATTERN="yyyy-MM-dd";
/**
*将日期转换为字符串
*/
publicstaticStringparse(Dated,Stringpattern){
DateFormatdf=null;
if(pattern!=null&&!"".equals(pattern)){
df=newSimpleDateFormat(pattern);
}else{
df=newSimpleDateFormat(LONG_PATTERN);
}
returndf.format(d);
}
将String转换成Date
privatestaticfinalStringLONG_PATTERN="yyyy-MM-ddHH:mm:ss";
privatestaticfinalStringSHORT_PATTERN="yyyy-MM-dd";
/**
*将字符串转为日期
*/
publicstaticDateparseStringToDate(Stringstr,Stringpattern){
DateFormatdf=null;
if(pattern!=null&&!"".equals(pattern)){
df=newSimpleDateFormat(pattern);
}else{
df=newSimpleDateFormat(LONG_PATTERN);
}
Dated=null;
try{
d=df.parse(str);
}catch(ParseExceptione){
e.printStackTrace();
}
returnd;
}
获取指定年后的日期(例如三年后的日期)
Calendardate=Calendar.getInstance();
date.setTime(newDate());
date.add(Calendar.YEAR,+3);
//倒计时结束后的时间
Datescrap_year=date.getTime();
System.out.println("三年后时间"+scrap_year);
Jdk8改革
LocalDateTime获取毫秒数
//获取秒数
Longsecond=LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8"));
//获取毫秒数
LongmilliSecond=LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli();
LocalDateTime与String互转
//时间转字符串格式化
DateTimeFormatterformatter=DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS");
StringdateTime=LocalDateTime.now(ZoneOffset.of("+8")).format(formatter);
//字符串转时间
StringdateTimeStr="2018-07-2814:11:15";
DateTimeFormatterdf=DateTimeFormatter.ofPattern("yyyy-MM-ddHH:mm:ss");
LocalDateTimedateTime=LocalDateTime.parse(dateTimeStr,df);
Date与LocalDateTime互转
//将java.util.Date转换为java8的java.time.LocalDateTime,默认时区为东8区
publicstaticLocalDateTimedateConvertToLocalDateTime(Datedate){
returndate.toInstant().atOffset(ZoneOffset.of("+8")).toLocalDateTime();
}
//将java8的java.time.LocalDateTime转换为java.util.Date,默认时区为东8区
publicstaticDatelocalDateTimeConvertToDate(LocalDateTimelocalDateTime){
returnDate.from(localDateTime.toInstant(ZoneOffset.of("+8")));
}
将LocalDateTime转为自定义的时间格式的字符串
publicstaticStringgetDateTimeAsString(LocalDateTimelocalDateTime,Stringformat){
DateTimeFormatterformatter=DateTimeFormatter.ofPattern(format);
returnlocalDateTime.format(formatter);
}
将某时间字符串转为自定义时间格式的LocalDateTime
publicstaticLocalDateTimeparseStringToDateTime(Stringtime,Stringformat){
DateTimeFormatterdf=DateTimeFormatter.ofPattern(format);
returnLocalDateTime.parse(time,df);
}
将long类型的timestamp转为LocalDateTime
publicstaticLocalDateTimegetDateTimeOfTimestamp(longtimestamp){
Instantinstant=Instant.ofEpochMilli(timestamp);
ZoneIdzone=ZoneId.systemDefault();
returnLocalDateTime.ofInstant(instant,zone);
}
将LocalDateTime转为long类型的timestamp
publicstaticlonggetTimestampOfDateTime(LocalDateTimelocalDateTime){
ZoneIdzone=ZoneId.systemDefault();
Instantinstant=localDateTime.atZone(zone).toInstant();
returninstant.toEpochMilli();
}
总结
到此这篇关于Java8中的LocalDateTime和Date一些时间操作方法的文章就介绍到这了,更多相关java8localdateTime和date内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!