java8中时间的各种转换(LocalDateTime)
1.将LocalDateTime转为自定义的时间格式的字符串
public static String getDateTimeAsString(LocalDateTime localDateTime, String format) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format);
return localDateTime.format(formatter);
}
2.将long类型的timestamp转为LocalDateTime
public static LocalDateTime getDateTimeOfTimestamp(long timestamp) {
Instant instant = Instant.ofEpochMilli(timestamp);
ZoneId zone = ZoneId.systemDefault();
return LocalDateTime.ofInstant(instant, zone);
}
3.将LocalDateTime转为long类型的timestamp
public static long getTimestampOfDateTime(LocalDateTime localDateTime) {
ZoneId zone = ZoneId.systemDefault();
Instant instant = localDateTime.atZone(zone).toInstant();
return instant.toEpochMilli();
}
4.将某时间字符串转为自定义时间格式的LocalDateTime
public static LocalDateTime parseStringToDateTime(String time, String format) {
DateTimeFormatter df = DateTimeFormatter.ofPattern(format);
return LocalDateTime.parse(time, df);
}
5 在当期日期上增加减少年月日、时分秒
@Test
public void test() {
//plusDays(), plusWeeks(), plusMonths(), plusYears(),plusHours() 向当前对象添加几天、几周、几个月、几年、几小时
LocalDateTime ld2 = LocalDateTime.of(2019, 2, 19, 11, 19, 59);
System.out.println(ld2);//2019-02-19T11:19:59
LocalDateTime ld3 = ld2.plusYears(2);//在当前的日期上在加两年
System.out.println(ld3);//2021-02-19T11:19:59
LocalDateTime ld4 = ld2.plusMonths(2);//在当前的日期上在加个月
System.out.println(ld4);//2019-04-19T11:19:59
LocalDateTime ld5 = ld2.plusWeeks(2);//在当前的日期上在加周 (2月28天 在加2周14天)
//ld2.plusDays(14); //相当于
System.out.println(ld5);//2019-03-05T11:19:59
LocalDateTime ld6 = ld2.plusDays(2);//在当前的日期上在加两天
System.out.println(ld6);//2019-02-21T11:19:59
LocalDateTime ld7 = ld2.plusHours(2);//在当前的日期上在加个小时
System.out.println(ld7);//2019-02-19T13:19:59
}
2、减少
@Test
public void test() {
//minusMonths() / minusWeeks()/ minusDays()/minusYears()/minusHours() 从当前对象减去几月、几周、几天、几年、几小时
LocalDateTime ld2 = LocalDateTime.of(2019, 2, 19, 11, 19, 59);
System.out.println(ld2);//2019-02-19T11:19:59
LocalDateTime ld3 = ld2.minusYears(2);//在当前的日期上在减两年
System.out.println(ld3);//2017-02-19T11:19:59
LocalDateTime ld4 = ld2.minusMonths(2);//在当前的日期上在减两个月
System.out.println(ld4);//2018-12-19T11:19:59
LocalDateTime ld5 = ld2.minusWeeks(2);//在当前的日期上在减两周
System.out.println(ld5);//2019-02-05T11:19:59
LocalDateTime ld6 = ld2.minusDays(2);//在当前的日期上在减两天
System.out.println(ld6);//2019-02-17T11:19:59
LocalDateTime ld7 = ld2.minusHours(2);//在当前的日期上在减两个小时
System.out.println(ld7);//2019-02-19T09:19:59
LocalDateTime ld8 = ld2.minusMinutes(2);//在当前的日期上在减两分钟
System.out.println(ld8);//2019-02-19T11:17:59
LocalDateTime ld9 = ld2.minusSeconds(2);//在当前的日期上在减两秒
System.out.println(ld9);//2019-02-19T11:19:57
LocalDateTime ld10 = ld2.minusNanos(2);//在当前的日期上在减两纳秒
System.out.println(ld10);//2019-02-19T11:19:58.999999998
}
3.格式化时间
public void test() {
//DateTimeFormatter.ISO_LOCAL_DATE_TIME ISO日期格式化程序格式化或解析没有偏移量的日期时间,例如“2011-12-03T10:15:30”。
//DateTimeFormatter.ISO_LOCAL_DATE ISO日期格式化程序格式化或解析没有偏移量的日期,如“2011-12-03”。
//DateTimeFormatter.ISO_LOCAL_TIME ISO时间格式化程序格式化或解析一个没有偏移量的时间,例如“10:15”或“10:15:30”。
LocalDateTime ldt = LocalDateTime.now();
DateTimeFormatter dtf2 = DateTimeFormatter.ISO_LOCAL_DATE_TIME;
String str = ldt.format(dtf2);
System.out.println(str);
String str2 = ldt.format(DateTimeFormatter.ISO_LOCAL_DATE);
System.out.println(str2);
String str3 = ldt.format(DateTimeFormatter.ISO_LOCAL_TIME);
System.out.println(str3);
System.out.println("-----------------------------------------");
//DateTimeFormatter.ISO_DATE_TIME 类似ISO的日期格式化程序,用于格式化或解析具有偏移量和区域(如果有的话)的日期时间,如“2011-12-03T10:15:30”,“2011-12-03T10:15:30 + 01” :00'或'2011-12-03T10:15:30 + 01:00 [欧洲/巴黎]'。
//DateTimeFormatter.ISO_DATE ISO日期格式化程序格式化或解析具有偏移量的日期(如可用),如“2011-12-03”或“2011-12-03 + 01:00”。
//DateTimeFormatter.ISO_TIME 格式化或解析时间的ISO时间格式化程序,如果可用的偏移量,如“10:15”,“10:15:30”或“10:15:30 + 01:00”。
String str4 = ldt.format(DateTimeFormatter.ISO_DATE_TIME);
System.out.println(str4);
String str5 = ldt.format(DateTimeFormatter.ISO_DATE);
System.out.println(str5);
String str6 = ldt.format(DateTimeFormatter.ISO_TIME);
System.out.println(str6);}
}
标签:转换,System,ld2,ISO,LocalDateTime,println,java8,out From: https://www.cnblogs.com/RedOrange/p/17091605.html