package com.hncu.jdk8date;
import java.time.LocalDateTime;
public class JDK8DateDemo1 {
public static void main(String[] args) {
//获取系统当前时间
LocalDateTime now = LocalDateTime.now();
System.out.println(now);
//获取指定时间
LocalDateTime localDateTime = LocalDateTime.of(2022, 11, 11, 11, 11, 11);
System.out.println(localDateTime);
}
}
package com.hncu.jdk8date;
import java.time.DayOfWeek;
import java.time.LocalDateTime;
public class JDK8DateDemo2 {
public static void main(String[] args) {
LocalDateTime time = LocalDateTime.of(2022,5,2,13,14,20);
//获取年份
int year = time.getYear();
System.out.println(year);
//获取月份
int monthValue = time.getMonthValue();
System.out.println(monthValue);
//获取月份中的第几天
int dayOfMonth = time.getDayOfMonth();
System.out.println(dayOfMonth);
//获取年份中的第几天
int dayOfYear = time.getDayOfYear();
System.out.println(dayOfYear);
//获取星期几
DayOfWeek dayOfWeek = time.getDayOfWeek();
System.out.println(dayOfWeek);
//获取分钟
int minute = time.getMinute();
System.out.println(minute);
//获取小时
int hour = time.getHour();
System.out.println(hour);
}
}
package com.hncu.jdk8date;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
public class JDK8DateDemo3 {
//LocalDateTime转换方法
public static void main(String[] args) {
LocalDateTime localDateTime = LocalDateTime.of(2022,11,11,11,11,11);
//只要日期
LocalDate localDate = localDateTime.toLocalDate();
System.out.println(localDate); //2022-11-11
//只要时间
LocalTime localTime = localDateTime.toLocalTime();
System.out.println(localTime); //11:11:11
}
}
package com.hncu.jdk8date;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class JDK8DateDemo4 {
//LocalDateTime类中的格式化与解析方法
public static void main(String[] args) {
//格式化
method1();
//解析
method2();
}
private static void method2() {
//要解析的字符串
String s1 = "2022年01月08日 19:58:20";
//即将要解析的格式
DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");
//解析后返回默认的格式
LocalDateTime parse = LocalDateTime.parse(s1,pattern);
System.out.println(parse); //2022-01-08T19:58:20
}
private static void method1() {
//自定义一个时间
LocalDateTime localDateTime = LocalDateTime.of(2022,11,11,11,11,11);
//输入格式
DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");
//返回格式化后的时间
String s = localDateTime.format(pattern);
System.out.println(s); //2022年11月11日 11:11:11
}
}
package com.hncu.jdk8date;
import java.time.LocalDateTime;
public class JDK8DateDemo5 {
//时间的修改之plus
public static void main(String[] args) {
//自定义一个时间
LocalDateTime dateTime = LocalDateTime.of(2022, 1, 8, 20, 20, 30);
//年份加1,其他的类推
LocalDateTime newdatetime = dateTime.plusYears(1);//如果是负数则为减,为0则不变
System.out.println(newdatetime);
}
}
package com.hncu.jdk8date;
import java.time.LocalDateTime;
public class JDK8DateDemo6 {
//直接修改时间
public static void main(String[] args) {
LocalDateTime dateTime = LocalDateTime.of(2022,1,9,13,14,15);
//年份修改为2024年
LocalDateTime localDateTime = dateTime.withYear(2024);
//月份修改为9月
LocalDateTime localDateTime1 = dateTime.withMonth(9);
System.out.println(localDateTime1); //2022-09-09T13:14:15
System.out.println(localDateTime); //2024-01-09T13:14:15
}
}
package com.hncu.jdk8date;
import java.time.LocalDate;
import java.time.Period;
public class JDK8DateDemo7 {
/*
计算两个时间的间隔
*/
public static void main(String[] args) {
LocalDate localDate1 = LocalDate.of(2022, 1, 3);
LocalDate localDate2 = LocalDate.of(2023, 10, 20);
Period period = Period.between(localDate1, localDate2);
//打印PPeriod对象,第一位数字代表间隔年数,第二数字代表间隔月数,第三数字就是间隔日数
System.out.println(period); //P1Y9M17D
//间隔年数
System.out.println(period.getYears()); //1
//间隔月数
System.out.println(period.getMonths()); //9
//间隔天数
System.out.println(period.getDays()); //17
//间隔总月数
System.out.println(period.toTotalMonths()); //21
}
}
package com.hncu.jdk8date;
import java.time.Duration;
import java.time.LocalDateTime;
public class JDK8DateDemo8 {
/*
计算时间间隔(秒)
*/
public static void main(String[] args) {
LocalDateTime localDateTime1 = LocalDateTime.of(2022,11,11,11,11,20,11);
LocalDateTime localDateTime2 = LocalDateTime.of(2022,11,12,12,12,19,7);
Duration duration = Duration.between(localDateTime1, localDateTime2);
//各种时间差
System.out.println(duration);//PT25H1M7.999999996S
//获得该间隔的秒
System.out.println(duration.toSeconds());
//毫秒
System.out.println(duration.toMillis());
//纳秒
System.out.println(duration.toNanos());
}
}