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