1 //往前推一天 2 String ss = DateTimeFormatter.ofPattern("MM/dd").format(LocalDateTime.now().minusDays(1)); 3 System.out.println(ss); 4 5 //往前推一个月 6 String ss1 = DateTimeFormatter.ofPattern("yyyy/MM").format(LocalDateTime.now().minusMonths(1)); 7 System.out.println(ss1); 8 9 DateTimeFormatter dateTimeFormatter=DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); 10 String ss2 = dateTimeFormatter.format(LocalDateTime.now()); 11 System.out.println(ss2);
输出结果:
1 07/26 2 2020/06 3 2020-07-27 17:00:00
字符串转换日期
String time = "2020-09-22";
LocalDate parse = LocalDate.parse(time);
String time = "2020-09-22 22:22:22";
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime localDateTime = LocalDateTime.parse(time, dateTimeFormatter);
System.out.println("年:"+localDateTime.getYear()+" 月:"+localDateTime.getMonthValue()+" 日:"+localDateTime.getDayOfMonth()+" 时:"+localDateTime.getHour()
+" 分:"+localDateTime.getMinute()+" 秒:"+localDateTime.getSecond()
);
输出结果:
年:2020 月:9 日:22 时:22 分:22 秒:22
LocalDateTime的常用方法:
LocalDateTime localDateTime = LocalDateTime.now(); System.out.println(localDateTime); //输出当前时间 System.out.println("减少1年:"+localDateTime.minusYears(1)); System.out.println("减少1月:"+localDateTime.minusMonths(1)); System.out.println("减少1周:"+localDateTime.minusWeeks(1)); System.out.println("减少1天:"+localDateTime.minusDays(1)); System.out.println("减少1小时:"+localDateTime.minusHours(1)); System.out.println("减少1分钟:"+localDateTime.minusMinutes(1)); System.out.println("减少1秒钟:"+localDateTime.minusSeconds(1)); System.out.println("增加1年:"+localDateTime.plusYears(1)); System.out.println("增加1月:"+localDateTime.plusMonths(1)); System.out.println("增加1周:"+localDateTime.plusWeeks(1)); System.out.println("增加1天:"+localDateTime.plusDays(1)); System.out.println("增加1小时:"+localDateTime.plusHours(1)); System.out.println("增加1分钟:"+localDateTime.plusMinutes(1)); System.out.println("增加1秒钟:"+localDateTime.plusSeconds(1));
输出:
2020-07-28T11:14:43.965 减少1年:2019-07-28T11:14:43.965 减少1月:2020-06-28T11:14:43.965 减少1周:2020-07-21T11:14:43.965 减少1天:2020-07-27T11:14:43.965 减少1小时:2020-07-28T10:14:43.965 减少1分钟:2020-07-28T11:13:43.965 减少1秒钟:2020-07-28T11:14:42.965 增加1年:2021-07-28T11:14:43.965 增加1月:2020-08-28T11:14:43.965 增加1周:2020-08-04T11:14:43.965 增加1天:2020-07-29T11:14:43.965 增加1小时:2020-07-28T12:14:43.965 增加1分钟:2020-07-28T11:15:43.965 增加1秒钟:2020-07-28T11:14:44.965
定义LocalDateTime:
//定义年 月 日 时 分 秒 LocalDateTime localDateTime1 = localDateTime.withYear(2028).withMonth(12).withDayOfMonth(13).withHour(15).withMinute(30).withSecond(45); System.out.println(localDateTime1);
输出:
2028-12-13T15:30:45.965
月多少天,年多少天:
System.out.println("每月多少天:"+LocalDate.now().lengthOfMonth()+" 每年多少天:"+LocalDate.now().lengthOfYear());
输出:
每月多少天:31 每年多少天:366
每天最大时间,最小时间:
//每天最大时间,minusSeconds,保存到数据库中为23:59:59.如果不加的话,保存到数据库就为:第二天00:00:00 LocalDateTime max = LocalDateTime.now().with(LocalTime.MAX).minusSeconds(1); System.out.println(max); //2020-07-28T23:59:58.999999999 //每天最小时间。 LocalDateTime startOfDay = LocalDateTime.now().with(LocalTime.MIN); System.out.println(startOfDay); //2020-07-28T00:00
LocalDateTime转Long,Long转LocalDateTime
/** * LocalDateTime转Long * @param localDateTime * @return */ public static long getTimestampOfDateTime(LocalDateTime localDateTime) { ZoneId zone = ZoneId.systemDefault(); Instant instant = localDateTime.atZone(zone).toInstant(); return instant.toEpochMilli(); } /** * long转LocalDateTime * @param timestamp * @return */ public static LocalDateTime getDateTimeOfTimestamp(long timestamp) { Instant instant = Instant.ofEpochMilli(timestamp); ZoneId zone = ZoneId.systemDefault(); return LocalDateTime.ofInstant(instant, zone); }