LocalDate使用
localDate时间创建方式
@Test
public void localDateCreate ( ) {
LocalDate yyyyMMdd = LocalDate . now ( ) ;
LocalTime HHmmssSSS = LocalTime . now ( ) ;
LocalDateTime yyyyMMddHHmmssSSS = LocalDateTime . now ( ) ;
System . out. println ( "年月日: " + yyyyMMdd) ;
System . out. println ( "时分秒毫秒: " + HHmmssSSS ) ;
System . out. println ( "年月日时分秒毫秒: " + yyyyMMddHHmmssSSS) ;
}
localDate 设值自定义日期 根据指定日期/时间创建对象
@Test
public void setDate ( ) {
LocalDate yyyyMMdd = LocalDate . of ( 2020 , 10 , 15 ) ;
LocalTime HHmmssSSS = LocalTime . of ( 10 , 10 , 10 ) ;
LocalDateTime yyyyMMddHHmmssSSS = LocalDateTime . of ( 2020 , 10 , 15 , 10 , 10 ) ;
System . out. println ( "自定义的年月日: " + yyyyMMdd) ;
System . out. println ( "自定义时分秒毫秒: " + HHmmssSSS ) ;
System . out. println ( "自定义年月日时分秒毫秒: " + yyyyMMddHHmmssSSS) ;
}
日期时间的加减
@Test
public void lessOrAddDate ( ) {
LocalDate yyyyMMdd = LocalDate . now ( ) ;
LocalDate addOneDay = yyyyMMdd. plusDays ( 1L ) ;
LocalDate addOneMonths = yyyyMMdd. plusMonths ( 1L ) ;
LocalDate addOneYears = yyyyMMdd. plusYears ( 1L ) ;
LocalDate addOneWeeks = yyyyMMdd. plusWeeks ( 1L ) ;
LocalDate delOneDay = yyyyMMdd. minusDays ( 1L ) ;
LocalDate delOneMonths = yyyyMMdd. minusMonths ( 1L ) ;
LocalDate delOneYears = yyyyMMdd. minusYears ( 1L ) ;
LocalDate delOneWeeks = yyyyMMdd. minusWeeks ( 1L ) ;
System . out. println ( "LocalDate yyyyMMdd 当前时间: " + yyyyMMdd) ;
System . out. println ( "*********LocalDate yyyyMMdd 添加 操作*********" ) ;
System . out. println ( "LocalDate yyyyMMdd 添加一日: " + addOneDay) ;
System . out. println ( "LocalDate yyyyMMdd 添加一月: " + addOneMonths) ;
System . out. println ( "LocalDate yyyyMMdd 添加一年: " + addOneYears) ;
System . out. println ( "LocalDate yyyyMMdd 添加一周: " + addOneWeeks) ;
System . out. println ( "*********LocalDate yyyyMMdd 减 操作*********" ) ;
System . out. println ( "LocalDate yyyyMMdd 减去一日: " + delOneDay) ;
System . out. println ( "LocalDate yyyyMMdd 减去一月: " + delOneMonths) ;
System . out. println ( "LocalDate yyyyMMdd 减去一年: " + delOneYears) ;
System . out. println ( "LocalDate yyyyMMdd 减去一周: " + delOneWeeks) ;
System . out. println ( "####################################################################" ) ;
LocalTime HHmmssSSS = LocalTime . now ( ) ;
LocalTime addOneHours = HHmmssSSS . plusHours ( 1L ) ;
LocalTime addOneMinutes = HHmmssSSS . plusMinutes ( 1L ) ;
LocalTime addOneSeconds = HHmmssSSS . plusSeconds ( 1L ) ;
LocalTime addOneNanos = HHmmssSSS . plusNanos ( 1L ) ;
LocalTime delOneHours = HHmmssSSS . minusHours ( 1L ) ;
LocalTime delOneMinutes = HHmmssSSS . minusMinutes ( 1L ) ;
LocalTime delOneSeconds = HHmmssSSS . minusSeconds ( 1L ) ;
LocalTime delOneNanos = HHmmssSSS . minusNanos ( 1L ) ;
System . out. println ( "LocalTime HHmmssSSS 当前时间: " + HHmmssSSS ) ;
System . out. println ( "*********LocalTime HHmmssSSS 添加 操作*********" ) ;
System . out. println ( "LocalTime HHmmssSSS 添加1小时: " + addOneHours) ;
System . out. println ( "LocalTime HHmmssSSS 添加1分钟: " + addOneMinutes) ;
System . out. println ( "LocalTime HHmmssSSS 添加1秒: " + addOneSeconds) ;
System . out. println ( "LocalTime HHmmssSSS 添加1纳秒: " + addOneNanos) ;
System . out. println ( "*********LocalTime HHmmssSSS 减 操作*********" ) ;
System . out. println ( "LocalTime HHmmssSSS 减去1小时: " + delOneHours) ;
System . out. println ( "LocalTime HHmmssSSS 减去1分钟: " + delOneMinutes) ;
System . out. println ( "LocalTime HHmmssSSS 减去1秒: " + delOneSeconds) ;
System . out. println ( "LocalTime HHmmssSSS 减去1纳秒: " + delOneNanos) ;
System . out. println ( "####################################################################" ) ;
LocalDateTime yyyyMMddHHmmssSSS = LocalDateTime . now ( ) ;
LocalDateTime localDateTimeaddOneDay = yyyyMMddHHmmssSSS. plusDays ( 1L ) ;
LocalDateTime localDateTimeaddOneMonths = yyyyMMddHHmmssSSS. plusMonths ( 1L ) ;
LocalDateTime localDateTimeaddOneYears = yyyyMMddHHmmssSSS. plusYears ( 1L ) ;
LocalDateTime localDateTimeaddOneWeeks = yyyyMMddHHmmssSSS. plusWeeks ( 1L ) ;
LocalDateTime localDateTimeaddOneHours = yyyyMMddHHmmssSSS. plusHours ( 1L ) ;
LocalDateTime localDateTimeaddOneMinutes = yyyyMMddHHmmssSSS. plusMinutes ( 1L ) ;
LocalDateTime localDateTimeaddOneSeconds = yyyyMMddHHmmssSSS. plusSeconds ( 1L ) ;
LocalDateTime localDateTimeaddOneNanos = yyyyMMddHHmmssSSS. plusNanos ( 1L ) ;
System . out. println ( "LocalDateTime yyyyMMddHHmmssSSS 当前时间: " + yyyyMMddHHmmssSSS) ;
System . out. println ( "*********LocalDateTime yyyyMMddHHmmssSSS 添加 操作*********" ) ;
System . out. println ( "LocalDateTime yyyyMMddHHmmssSSS 添加一日: " + localDateTimeaddOneDay) ;
System . out. println ( "LocalDateTime yyyyMMddHHmmssSSS 添加一月: " + localDateTimeaddOneMonths) ;
System . out. println ( "LocalDateTime yyyyMMddHHmmssSSS 添加一年: " + localDateTimeaddOneYears) ;
System . out. println ( "LocalDateTime yyyyMMddHHmmssSSS 添加一周: " + localDateTimeaddOneWeeks) ;
System . out. println ( "LocalDateTime yyyyMMddHHmmssSSS 添加1小时: " + localDateTimeaddOneHours) ;
System . out. println ( "LocalDateTime yyyyMMddHHmmssSSS 添加1分钟: " + localDateTimeaddOneMinutes) ;
System . out. println ( "LocalDateTime yyyyMMddHHmmssSSS 添加1秒: " + localDateTimeaddOneSeconds) ;
System . out. println ( "LocalDateTime yyyyMMddHHmmssSSS 添加1纳秒: " + localDateTimeaddOneNanos) ;
LocalDateTime localDateTimedelOneDay = yyyyMMddHHmmssSSS. minusDays ( 1L ) ;
LocalDateTime localDateTimedelOneMonths = yyyyMMddHHmmssSSS. minusMonths ( 1L ) ;
LocalDateTime localDateTimedelOneYears = yyyyMMddHHmmssSSS. minusYears ( 1L ) ;
LocalDateTime localDateTimedelOneWeeks = yyyyMMddHHmmssSSS. minusWeeks ( 1L ) ;
LocalDateTime localDateTimedelOneHours = yyyyMMddHHmmssSSS. minusHours ( 1L ) ;
LocalDateTime localDateTimedelOneMinutes = yyyyMMddHHmmssSSS. minusMinutes ( 1L ) ;
LocalDateTime localDateTimedelOneSeconds = yyyyMMddHHmmssSSS. minusSeconds ( 1L ) ;
LocalDateTime localDateTimedelOneNanos = yyyyMMddHHmmssSSS. minusNanos ( 1L ) ;
System . out. println ( "*********LocalDateTime yyyyMMddHHmmssSSS 减 操作*********" ) ;
System . out. println ( "LocalDateTime yyyyMMddHHmmssSSS 减去一日: " + localDateTimedelOneDay) ;
System . out. println ( "LocalDateTime yyyyMMddHHmmssSSS 减去一月: " + localDateTimedelOneMonths) ;
System . out. println ( "LocalDateTime yyyyMMddHHmmssSSS 减去一年: " + localDateTimedelOneYears) ;
System . out. println ( "LocalDateTime yyyyMMddHHmmssSSS 减去一周: " + localDateTimedelOneWeeks) ;
System . out. println ( "LocalDateTime yyyyMMddHHmmssSSS 减去1小时: " + localDateTimedelOneHours) ;
System . out. println ( "LocalDateTime yyyyMMddHHmmssSSS 减去1分钟: " + localDateTimedelOneMinutes) ;
System . out. println ( "LocalDateTime yyyyMMddHHmmssSSS 减去1秒: " + localDateTimedelOneSeconds) ;
System . out. println ( "LocalDateTime yyyyMMddHHmmssSSS 减去1纳秒: " + localDateTimedelOneNanos) ;
}
将年、月、日等修改为指定的值,并返回新的日期(时间)对象
@Test
public void directDesignationTime ( ) {
LocalDate yyyyMMdd = LocalDate . now ( ) ;
System . out. println ( "LocalDate yyyyMMdd 当前时间: " + yyyyMMdd) ;
LocalDate addDay = yyyyMMdd. plusDays ( 4 ) ;
System . out. println ( "LocalDate yyyyMMdd 添加4天后的日期: " + addDay) ;
LocalDate directDesignationDate = yyyyMMdd. withDayOfMonth ( 20 ) ;
System . out. println ( "LocalDate yyyyMMdd 直接指定到当月第几号: " + directDesignationDate) ;
LocalDate directDesignationYearDate = yyyyMMdd. withDayOfYear ( 20 ) ;
System . out. println ( "LocalDate yyyyMMdd 直接指定到当年第几天: " + directDesignationYearDate) ;
LocalDate directDesignationYear = yyyyMMdd. withYear ( 2000 ) ;
System . out. println ( "LocalDate yyyyMMdd 当前时间直接指定年份: " + directDesignationYear) ;
LocalDate directDesignationMonth = yyyyMMdd. withMonth ( 6 ) ;
System . out. println ( "LocalDate yyyyMMdd 当前时间直接指定月份: " + directDesignationMonth) ;
}
获取日期的年月日周时分秒
@Test
public void getDateInfo ( ) {
LocalDateTime yyyyMMddHHmmssSSS = LocalDateTime . now ( ) ;
int dayOfYear = yyyyMMddHHmmssSSS. getDayOfYear ( ) ;
int dayOfMonth = yyyyMMddHHmmssSSS. getDayOfMonth ( ) ;
DayOfWeek dayOfWeek = yyyyMMddHHmmssSSS. getDayOfWeek ( ) ;
int value = dayOfWeek. getValue ( ) ;
System . out. println ( "今天是" + yyyyMMddHHmmssSSS + "\n"
+ "本年当中第" + dayOfYear + "天" + "\n"
+ "本月当中第" + dayOfMonth + "天" + "\n"
+ "本周中星期" + value + "-即" + dayOfWeek + "\n" ) ;
int year = yyyyMMddHHmmssSSS. getYear ( ) ;
Month month = yyyyMMddHHmmssSSS. getMonth ( ) ;
int monthValue = yyyyMMddHHmmssSSS. getMonthValue ( ) ;
int dayOfMonth1 = yyyyMMddHHmmssSSS. getDayOfMonth ( ) ;
int hour = yyyyMMddHHmmssSSS. getHour ( ) ;
int minute = yyyyMMddHHmmssSSS. getMinute ( ) ;
int second = yyyyMMddHHmmssSSS. getSecond ( ) ;
int nano = yyyyMMddHHmmssSSS. getNano ( ) ;
System . out. println ( "今天是" + yyyyMMddHHmmssSSS + "\n"
+ "年 : " + year + "\n"
+ "月 : " + monthValue + "-即 " + month + "\n"
+ "日 : " + dayOfMonth1 + "\n"
+ "时 : " + hour + "\n"
+ "分 : " + minute + "\n"
+ "秒 : " + second + "\n"
+ "纳秒 : " + nano + "\n"
) ;
}
时间日期前后的比较与判断
@Test
public void isBefore ( ) {
LocalDate now = LocalDate . now ( ) ;
LocalDate of = LocalDate . of ( 2020 , 10 , 15 ) ;
boolean before = of. isBefore ( now) ;
System . out. println ( "判断of 是否在 now 时间之前 " + before) ;
boolean after = of. isAfter ( now) ;
System . out. println ( "判断of 是否在 now 时间之后 " + after) ;
boolean equal = of. isEqual ( now) ;
System . out. println ( "判断两个时间是否相等 " + equal) ;
boolean leapYear = now. isLeapYear ( ) ;
System . out. println ( "判断是否为闰年 " + leapYear) ;
}
java8时钟 : clock()
@Test
public void clock ( ) {
Clock clock = Clock . systemUTC ( ) ;
System . out. println ( clock) ;
}
时间戳
@Test
public void instant ( ) {
Instant instant = Instant . now ( ) ;
System . out. println ( instant) ;
Date date = Date . from ( instant) ;
Instant instant2 = date. toInstant ( ) ;
System . out. println ( date) ;
System . out. println ( instant2) ;
}
计算时间、日期间隔
@Test
public void durationOrPeriod ( ) {
LocalDateTime now = LocalDateTime . now ( ) ;
System . out. println ( "duration当前时间:" + now) ;
LocalDateTime of = LocalDateTime . of ( 2020 , 10 , 15 , 10 , 24 ) ;
System . out. println ( "duration自定义时间:" + of) ;
Duration duration = Duration . between ( now, of) ;
System . out. println ( now + " 与 " + of + " 间隔 " + "\n"
+ " 天 :" + duration. toDays ( ) + "\n"
+ " 时 :" + duration. toHours ( ) + "\n"
+ " 分 :" + duration. toMinutes ( ) + "\n"
+ " 毫秒 :" + duration. toMillis ( ) + "\n"
+ " 纳秒 :" + duration. toNanos ( ) + "\n"
) ;
LocalDate nowDate = LocalDate . now ( ) ;
System . out. println ( "period当前时间:" + now) ;
LocalDate OfDate = LocalDate . of ( 2020 , 10 , 15 ) ;
System . out. println ( "period自定义时间:" + of) ;
Period period = Period . between ( nowDate, OfDate ) ;
System . out. println ( "Period相差年数 : " + period. getYears ( ) ) ;
System . out. println ( "Period相差月数 : " + period. getMonths ( ) ) ;
System . out. println ( "Period相差日数 : " + period. getDays ( ) ) ;
System . out. println ( "-------------------------------" ) ;
long years = period. get ( ChronoUnit . YEARS) ;
long months = period. get ( ChronoUnit . MONTHS) ;
long days = period. get ( ChronoUnit . DAYS) ;
System . out. println ( "Period相差的年月日分别为 : " + years + "," + months + "," + days) ;
}
日期格式化
将时间对象转化为日期字符串
@Test
public void formatter1 ( ) {
LocalDateTime now = LocalDateTime . now ( ) ;
DateTimeFormatter dtf = DateTimeFormatter . ofPattern ( "yyyy-MM-dd HH:mm:ss:SSS" ) ;
String format = dtf. format ( now) ;
System . out. println ( format) ;
}
将时间字符串形式转化为日期对象
@Test
public void formatter2 ( ) {
String dateStr = "2020-11-12" ;
DateTimeFormatter dtf = DateTimeFormatter . ofPattern ( "yyyy-MM-dd" ) ;
LocalDate formatterDate = LocalDate . parse ( dateStr, dtf) ;
System . out. println ( formatterDate) ;
}
将时间日期对象转为格式化后的时间日期对象
@Test
public void formatter3 ( ) {
LocalDateTime ldt1 = LocalDateTime . now ( ) ;
DateTimeFormatter dtf1 = DateTimeFormatter . ofPattern ( "yyyy-MM-dd HH:mm:ss" ) ;
String temp = dtf1. format ( ldt1) ;
LocalDateTime formatedDateTime = LocalDateTime . parse ( temp, dtf1) ;
System . out. println ( formatedDateTime) ;
}
转换
localDate 转 date
@Test
public void localDateToDate ( ) {
LocalDate now = LocalDate . now ( ) ;
Date from = Date . from ( now. atStartOfDay ( ZoneOffset . systemDefault ( ) ) . toInstant ( ) ) ;
LocalDateTime localDateTime = LocalDateTime . now ( ) ;
Date date = Date . from ( localDateTime. atZone ( ZoneOffset . ofHours ( 8 ) ) . toInstant ( ) ) ;
System . out. println ( from) ;
System . out. println ( date) ;
}
date 转 localDate
@Test
public void dateToLocalDate ( ) {
Date date = new Date ( ) ;
LocalDate localDate = date. toInstant ( ) . atZone ( ZoneOffset . systemDefault ( ) ) . toLocalDate ( ) ;
System . out. println ( localDate) ;
LocalDateTime localDateTime = date. toInstant ( ) . atZone ( ZoneOffset . systemDefault ( ) ) . toLocalDateTime ( ) ;
System . out. println ( localDateTime) ;
}
localDate 转 时间戳
@Test
public void localDateToInstant ( ) {
LocalDate localDate = LocalDate . now ( ) ;
long instant = localDate. atStartOfDay ( ZoneOffset . systemDefault ( ) ) . toInstant ( ) . toEpochMilli ( ) ;
System . out. println ( instant) ;
LocalDateTime now = LocalDateTime . now ( ) ;
long instant1 = now. toInstant ( ZoneOffset . ofHours ( 8 ) ) . toEpochMilli ( ) ;
System . out. println ( instant1) ;
}
时间戳 转 localDate
@Test
public void instantToLocalDate ( ) {
long time = new Date ( ) . getTime ( ) ;
LocalDateTime localDateTime = Instant . ofEpochMilli ( time) . atZone ( ZoneOffset . systemDefault ( ) ) . toLocalDateTime ( ) ;
System . out. println ( localDateTime) ;
LocalDate localDate = Instant . ofEpochMilli ( time) . atZone ( ZoneOffset . systemDefault ( ) ) . toLocalDate ( ) ;
System . out. println ( localDate) ;
}
转载:https://www.jianshu.com/p/5e9e2bb55211