6.2-java8新日期类-LocalDateTIme

LocalDateTime

创建对象

public static LocalDateTime now()
从默认时区中的系统时钟获取当前日期时间。

	//静态工厂方法now,获取当前日期对象
	LocalDateTime localDateTime = LocalDateTime.now();
	System.out.println("今天的日期是:"+localDateTime);
	// 输出:今天的日期是:2018-03-29T10:48:21.339

public static LocalDateTime of(
int year, int month, int dayOfMonth, int hour, int minute, int second)
从年、月、日、时、分、秒获得LocalDateTime的实例。

	// 通过年、月、日、时、分、秒创建LocalDateTime日期对象
	LocalDateTime localDateTime = LocalDateTime.of(2018,1,1,8,10,15);
	System.out.println("指定的日期是:"+localDateTime);
	//输出:指定的日期是:2018-01-01T08:10:15
	//T 表示是默认时区

转换成秒

default long toEpochSecond(ZoneOffset offset)
将此日期时间对象转换为自1970-01-01T0:00:0Z时代的秒数

	// 创建LocalDateTime日期对象
	LocalDateTime localDateTime = LocalDateTime.now();
	// 将此日期时间对象转换为自1970-01-01T0:00∶0Z时代的秒数
	long seconds=localDateTime.toEpochSecond(ZoneOffset.of("+8"));
	System.out.println(seconds);
	// 输出:1530242743

格式化转换

使用DateTimeFormatter工具类将日期时间对象转换成字符串

	//1、 创建LocalDateTime日期对象
	LocalDateTime localDateTime = LocalDateTime.now();
	//2、 传入字符串日期格式,创建格式化类(时区可以省略)
	DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss",Locale.CHINA);
	//3、 对日期时间对象进行格式化,返回字符串
	String localTime = localDateTime.format(df);
	System.out.println("LocalDateTime转成String类型的时间:"+localTime);
	
	//输出:LocalDateTime转成String类型的时间:2018-03-29 11:25:43

使用DateTimeFormatter工具类将字符串转换成日期时间对象

	//1、 传入字符串日期格式,创建格式化类
	DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
	//2、 将字符串解析成日期时间对象,并返回
	LocalDateTime ldt = LocalDateTime.parse("2018-08-08 08:08:08",df);
	System.out.println("String类型的时间转成LocalDateTime:"+ldt);
	
	//String类型的时间转成LocalDateTime:2018-08-08T08:08:08

取得日期字段

通过一下方法

  1. public int getYear()
  2. public int getMonth()
  3. public int getMonthValue()
  4. public int getDayOfMonth()
  5. public int getHour()
  6. public int getMinute()
  7. public int getSecond()
  8. public int getDayOfWeek()
  9. public int getDayOfYear()
    获取LocalDateTime对象的属性

设置日期字段

通过一下方法

  1. public int withYear(int year)
  2. public int withMonth(int month)
  3. public int withDayOfMonth(int dayOfYear)
  4. public int withHour(int hour)
  5. public int withMinute(int minute)
  6. public int withSecond(int second)
    返回LocalDateTime的副本,并更改日期

日期的运算

加法
返回此LoalDaleTimes的副本,并在指定的日期内添加日期

  1. public LocalDateTime plusYears(long years)
  2. public LocalDateTime
  3. plusMonths(long months)
  4. public LocalDateTime plusDays(long days)
  5. public LocalDateTime plusHours(long hours)
  6. public LocalDateTime plusMinutes(long minutes)
  7. public LocalDateTime plusSeconds(long seconds)
  8. public LocalDateTime plus(long amountToAdd,TemporalUnit unit)

减法
返回此LoalDaleTimes的副本,并在指定的日期内减去日期

  1. public LocalDateTime minusYears(long years)
  2. public LocalDateTime minusMonths(long months)
  3. public LocalDateTime minusDays(long days)
  4. public LocalDateTime minusHours(long hours)
  5. public LocalDateTime minusMinutes(long minutes)
  6. public LocalDateTime minusSeconds(long seconds)
  7. public LocalDateTime minus(long amountToAdd,TemporalUnit unit)

截取

public LocalDateTime truncatedTo(TemporalUnit unit)
返回此LocalDateTime的副本,截断时间
TemporalUnit unit 表示单位

	//取得日期对象
	LocalDateTime d = LocalDateTime.now();
	//格式化对象
	DateTimeFormatter df=DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
			
	//截断秒
	LocalDateTime d2 = d.truncatedTo(ChronoUnit.MINUTES);
	System.out.println(d2.format(df));
	//2018-03-29 14:50:00
			
	//截断分秒
	d2 = d.truncatedTo(ChronoUnit.HOURS);
	System.out.println(d2.format(df));
	//输出2018-03-29 14:00:00
			
	//截断时分秒
	d2 = d.truncatedTo(ChronoUnit.DAYS);
	System.out.println(d2.format(df));
	//输出2018-03-29 00:00:00

日期的比较

  1. public boolean isAfter(ChronoLocalDatetime other)
  2. public boolean isBefore(ChronoLocalDatetime other)
  3. public boolean equals(Object obj)
	LocalDateTime day= LocalDateTime.now();
	LocalDateTime mayDay= LocalDateTime.of(2018, 5, 1, 0, 0, 0);
	System.out.println("还没有到五一假期吗?"+day.isBefore(mayDay));
	//输出:还没有到五一假期吗?true
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值