基于java8的时间类编写的一些常用的时间工具方法:
1、获取指定日期对应的周一和周日的时间
2、获取两个指定日期之间的差值
3、获取指定日期对应月份的天数
4、获取指定日期对应年份的天数
5、获取指定时间对应的秒值
6、获取指定时间对应的毫秒值
package com.hock.synctest;
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
public class TimesUntils {
public static DateTimeFormatter dtfDate = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
public static void main(String[] args) {
String date1="2019-02-07 00:00:00";
String date2="2019-01-22 00:00:00";
System.out.println("周一的时间"+getDateofWeekFirstDay(date1)[0]+"\n周日的时间"+getDateofWeekFirstDay(date1)[1]);
System.out.println(date1+"与"+date2+"相差"+getDateDiff(date1, date2));
System.out.println("本月一共有"+getDayOfMonth(date1)+"天");
System.out.println("本年一共有"+getDayOfYear(date1)+"天");
System.out.println("当前时间对应秒值:"+getDateOfSecond(date1));
System.out.println("当前时间对应毫秒值:"+getDateOfMills(date1));
}
/***
* 获取两个日期相差的天数
* @param date1
* @param date2
* @return
*/
public static String getDateDiff(String date1,String date2) {
LocalDate begin = (LocalDateTime.parse(date1, dtfDate)).toLocalDate();
LocalDate end = LocalDateTime.parse(date2, dtfDate).toLocalDate();
String daysdiff=(end.toEpochDay()-begin.toEpochDay())+"";
return daysdiff;
}
/**
* 获取指定日期的周一和周天的时间
* @param date1
* @return
*/
public static String[] getDateofWeekFirstDay(String date1) {
LocalDate dates = (LocalDateTime.parse(date1, dtfDate)).toLocalDate();
LocalDate Monday = dates.with(DayOfWeek.MONDAY);
LocalDate Sunday = dates.with(DayOfWeek.SUNDAY);
String[] weeks= {Monday.toString(),Sunday.toString()};
return weeks;
}
/***
* 获当月有多少天
* @param date1
* @param date2
* @return
*/
public static String getDayOfMonth(String date1) {
LocalDate begin = (LocalDateTime.parse(date1, dtfDate)).toLocalDate();
int lengthOfMonth = begin.lengthOfMonth();
return lengthOfMonth+"";
}
/***
* 获当年有多少天
* @param date1
* @param date2
* @return
*/
public static String getDayOfYear(String date1) {
LocalDate begin = (LocalDateTime.parse(date1, dtfDate)).toLocalDate();
int lengthOfYear = begin.lengthOfYear();
return lengthOfYear+"";
}
/***
* 获取指定时间对应的秒值
* @param date1
* @param date2
* @return
*/
public static Long getDateOfSecond(String date1) {
LocalDateTime begin = LocalDateTime.parse(date1, dtfDate);
Long Second =begin.toEpochSecond(ZoneOffset.of("+8"));
return Second;
}
/***
* 获取指定时间对应的秒值
* @param date1
* @param date2
* @return
*/
public static Long getDateOfMills(String date1) {
LocalDateTime begin = LocalDateTime.parse(date1, dtfDate);
Long Mills =begin.toInstant(ZoneOffset.of("+8")).toEpochMilli();
return Mills;
}
}