1、在线API
https://docs.oracle.com/javase/8/docs/api/java/time/LocalDateTime.html
2、主要方法
(1)创建LocalDateTime
方法 | 说明 |
---|
static LocalDateTime now() | 获取默认时区的当前日期时间 |
static LocalDateTime now(Clock clock) | 从指定时钟获取当前日期时间 |
static LocalDateTime now(ZoneId zone) | 获取指定时区的当前日期时间 |
static LocalDateTime of(LocalDate date, LocalTime time) | 根据日期和时间对象获取LocalDateTime 实例 |
static LocalDateTime of(int year, Month month, int dayOfMonth, int hour, int minute, int second) | 根据指定的年、月、日、时、分、秒获取LocalDateTime 实例 |
public static void crtLocalDateTime() {
LocalDateTime ldt1 = LocalDateTime.now();
System.out.println(ldt1);
LocalDateTime ldt2 = LocalDateTime.now(Clock.systemDefaultZone());
System.out.println(ldt2);
LocalDateTime ldt3 = LocalDateTime.now(ZoneId.of("Asia/Shanghai"));
System.out.println(ldt3);
LocalDate localDate1 = LocalDate.now();
LocalTime localTime1 = LocalTime.now();
LocalDateTime ldt4 = LocalDateTime.of(localDate1,localTime1);
System.out.println(ldt4);
LocalDateTime ldt5 = LocalDateTime.of(2019,12,7,21,48,50);
System.out.println(ldt5);
}
(2)获取年月日、时分秒等
方法 | 说明 |
---|
int getYear() | 获取年份 |
Month getMonth() | 使用月份枚举类获取月份 |
int getDayOfMonth() | 获取日期在该月是第几天 |
DayOfWeek getDayOfWeek() | 获取日期是星期几 |
int getDayOfYear() | 获取日期在该年是第几天 |
int getHour() | 获取小时 |
int getMinute() | 获取分钟 |
int getSecond() | 获取秒 |
int getNano() | 获取纳秒 |
public static void getLocalDateTime() {
LocalDateTime ldt1 = LocalDateTime.now();
System.out.println(ldt1);
System.out.println("年 : " + ldt1.getYear());
System.out.println("月(英文) : " + ldt1.getMonth());
System.out.println(" 月(数字英文): " + ldt1.getMonth().getValue());
System.out.println("天 : " + ldt1.getDayOfMonth());
System.out.println("星期几(英文) : " + ldt1.getDayOfWeek());
System.out.println("星期几(数字英文) : " + ldt1.getDayOfWeek().getValue());
System.out.println("本年的第几天 : " + ldt1.getDayOfYear());
System.out.println("时: " + ldt1.getHour());
System.out.println("分: " + ldt1.getMinute());
System.out.println("秒: " + ldt1.getSecond());
System.out.println("纳秒: " + ldt1.getNano());
}
(3)加减方法
方法 | 说明 |
---|
LocalDateTime plusYears(long years) | 增加年 |
LocalDateTime plusMonths(long months) | 增加月 |
LocalDateTime plusWeeks(long weeks) | 增加周 |
LocalDateTime plusDays(long days) | 增加天 |
LocalDateTime plusHours(long hours) | 增加小时 |
LocalDateTime plusMinutes(long minutes) | 增加分 |
LocalDateTime plusSeconds(long seconds) | 增加秒 |
LocalDateTime plusNanos(long nanos) | 增加纳秒 |
LocalDateTime minusYears(long years) | 减少年 |
LocalDateTime minusMonths(long months) | 减少月 |
LocalDateTimeminusWeeks(long weeks) | 减少周 |
LocalDateTime minusDays(long days) | 减少天 |
LocalDateTime minusHours(long hours) | 减少小时 |
LocalDateTime minusMinutes(long minutes) | 减少分 |
LocalDateTime minusSeconds(long seconds) | 减少秒 |
LocalDateTime minusNanos(long nanos) | 减少纳秒 |
public static void addAndSubtract() {
LocalDateTime ldt1 = LocalDateTime.now();
System.out.println("当前时间: " + ldt1);
System.out.println("增加天数 : " + ldt1.plusDays(1));
System.out.println("增加周数 : " + ldt1.plusWeeks(1));
System.out.println("增加月数 : " + ldt1.plusMonths(1));
System.out.println("增加年数 : " + ldt1.plusYears(1));
System.out.println("减少天数 : " + ldt1.minusDays(1));
System.out.println("减少月数 : " + ldt1.minusMonths(1));
System.out.println("减少周数 : " + ldt1.minusWeeks(1));
System.out.println("减少年数 : " + ldt1.minusYears(1));
System.out.println("增加1小时: " + ldt1.plusHours(1));
System.out.println("增加30分钟: " + ldt1.plusMinutes(30));
System.out.println("增加30秒: " + ldt1.plusSeconds(30));
System.out.println("增加10000纳秒:" + ldt1.plusNanos(10000));
System.out.println("减少1小时:" + ldt1.minusHours(1));
System.out.println("减少30分钟:" + ldt1.minusMinutes(30));
System.out.println("减少30秒: " + ldt1.minusSeconds(30));
System.out.println("减少10000纳秒:" + ldt1.minusNanos(10000));
}
(4)比较方法
方法 | 说明 |
---|
boolean isAfter(ChronoLocalDateTime<?> other) | 检查是否在指定日期时间之后 |
boolean isBefore(ChronoLocalDateTime<?> other) | 检查是否在指定日期时间之前 |
boolean isEqual(ChronoLocalDateTime<?> other) | 判断日期时间是否相等 |
public static void compareLocalDateTime() {
LocalDateTime ldt1 = LocalDateTime.now();
LocalDateTime ldt2 = LocalDateTime.of(2019, 12, 7, 12, 30, 30);
LocalDateTime ldt3 = LocalDateTime.of(2019, 12, 6, 12, 30, 30);
if (ldt1.isEqual(ldt2)) {
System.out.println("ldt1和ldt2相等");
} else {
System.out.println("ldt1和ldt2不相等");
}
if (ldt1.isAfter(ldt2)) {
System.out.println("ldt1在ldt2之后");
}
if (ldt1.isBefore(ldt3)) {
System.out.println("ldt1在ldt3之前");
}
}
(5)转换方法
方法 | 说明 |
---|
LocalDate toLocalDate() | 获取日期部分 |
LocalTime toLocalTime() | 获取时间部分 |
static LocalDateTime parse(CharSequence text) | 从文本字符串获取LocalDateTime 实例 |
static LocalDateTime parse(CharSequence text, DateTimeFormatter formatter) | 检使用特定格式化形式从文本字符串获取LocalDateTime 实例 |
public static void convertLocalDateTime() {
LocalDateTime ldt1 = LocalDateTime.now();
System.out.println(ldt1.toLocalDate());
System.out.println(ldt1.toLocalTime());
LocalDateTime ldt2 = LocalDateTime.parse("2019-12-07T21:20:06.303995200");
System.out.println(ldt2);
DateTimeFormatter df1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime ldt3 = LocalDateTime.parse("2019-12-07 21:20:06", df1);
System.out.println(ldt3);
String ldt4 = df1.format(ldt2);
System.out.println(ldt4);
}