java8中时间的各种转换(LocalDateTime)

您所在的位置:网站首页 localdatetime转long毫秒变短 java8中时间的各种转换(LocalDateTime)

java8中时间的各种转换(LocalDateTime)

2023-11-11 21:23| 来源: 网络整理| 查看: 265

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);}



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3