四、LocalDateTime 类主要方法

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); // 2019-12-07T21:48:46.755946400
		
		LocalDateTime ldt2 = LocalDateTime.now(Clock.systemDefaultZone());
		System.out.println(ldt2); // 2019-12-07T21:48:46.757138

		LocalDateTime ldt3 = LocalDateTime.now(ZoneId.of("Asia/Shanghai"));
		System.out.println(ldt3); // 2019-12-07T21:48:46.757381400
		
		LocalDate localDate1 = LocalDate.now();
		LocalTime localTime1 = LocalTime.now();
		
		LocalDateTime ldt4 = LocalDateTime.of(localDate1,localTime1);
		System.out.println(ldt4); // 2019-12-07T21:48:46.757381400

		LocalDateTime ldt5 = LocalDateTime.of(2019,12,7,21,48,50);
		System.out.println(ldt5); // 2019-12-07T21:48:50
	}

(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()); // 2019
		System.out.println("月(英文) : " + ldt1.getMonth()); // DECEMBER
		System.out.println(" 月(数字英文): " + ldt1.getMonth().getValue()); // 12
		System.out.println("天 : " + ldt1.getDayOfMonth()); // 7
		System.out.println("星期几(英文) : " + ldt1.getDayOfWeek()); // SATURDAY
		System.out.println("星期几(数字英文) : " + ldt1.getDayOfWeek().getValue()); // 6
		System.out.println("本年的第几天 : " + ldt1.getDayOfYear()); // 341
		
		System.out.println("时: " + ldt1.getHour());//22
		System.out.println("分: " + ldt1.getMinute()); //3
		System.out.println("秒: " + ldt1.getSecond());//38
		System.out.println("纳秒: " + ldt1.getNano());//594267100
	}

(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);  //2019-12-07T22:20:06.303995200
		
		System.out.println("增加天数 : " + ldt1.plusDays(1)); // 2019-12-08T22:20:06.303995200
		System.out.println("增加周数 : " + ldt1.plusWeeks(1)); // 22019-12-14T22:20:06.303995200
		System.out.println("增加月数 : " + ldt1.plusMonths(1)); // 2020-01-07T22:20:06.303995200
		System.out.println("增加年数 : " + ldt1.plusYears(1)); // 2020-12-07T22:20:06.303995200

		System.out.println("减少天数 : " + ldt1.minusDays(1)); // 2019-12-06T22:20:06.303995200
		System.out.println("减少月数 : " + ldt1.minusMonths(1)); // 2019-11-07T22:20:06.303995200
		System.out.println("减少周数 : " + ldt1.minusWeeks(1)); // 2019-11-30T22:20:06.303995200
		System.out.println("减少年数 : " + ldt1.minusYears(1)); // 2018-12-07T22:20:06.303995200
		
        System.out.println("增加1小时: " + ldt1.plusHours(1)); //2019-12-07T23:20:06.303995200
        System.out.println("增加30分钟: " + ldt1.plusMinutes(30)); //2019-12-07T22:50:06.303995200
        System.out.println("增加30秒: " + ldt1.plusSeconds(30)); //2019-12-07T22:20:36.303995200
        System.out.println("增加10000纳秒:" + ldt1.plusNanos(10000)); //2019-12-07T22:20:06.304005200

        System.out.println("减少1小时:" + ldt1.minusHours(1)); //2019-12-07T21:20:06.303995200
        System.out.println("减少30分钟:" + ldt1.minusMinutes(30)); //2019-12-07T21:50:06.303995200
        System.out.println("减少30秒: " + ldt1.minusSeconds(30)); //2019-12-07T22:19:36.303995200
        System.out.println("减少10000纳秒:" + ldt1.minusNanos(10000));  //2019-12-07T22:20:06.303985200
	}
	

(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());  //2019-12-07
		System.out.println(ldt1.toLocalTime());  //22:31:41.391044900
		LocalDateTime ldt2 = LocalDateTime.parse("2019-12-07T21:20:06.303995200");
		System.out.println(ldt2);  //2019-12-07T21:20:06.303995200
		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);  //2019-12-07T21:20:06
		String ldt4 = df1.format(ldt2);
		System.out.println(ldt4);  //2019-12-07 21:20:06
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值