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
取得日期字段
通过一下方法
- public int getYear()
- public int getMonth()
- public int getMonthValue()
- public int getDayOfMonth()
- public int getHour()
- public int getMinute()
- public int getSecond()
- public int getDayOfWeek()
- public int getDayOfYear()
获取LocalDateTime对象的属性
设置日期字段
通过一下方法
- public int withYear(int year)
- public int withMonth(int month)
- public int withDayOfMonth(int dayOfYear)
- public int withHour(int hour)
- public int withMinute(int minute)
- public int withSecond(int second)
返回LocalDateTime的副本,并更改日期
日期的运算
加法
返回此LoalDaleTimes的副本,并在指定的日期内添加日期
- public LocalDateTime plusYears(long years)
- public LocalDateTime
- plusMonths(long months)
- public LocalDateTime plusDays(long days)
- public LocalDateTime plusHours(long hours)
- public LocalDateTime plusMinutes(long minutes)
- public LocalDateTime plusSeconds(long seconds)
- public LocalDateTime plus(long amountToAdd,TemporalUnit unit)
减法
返回此LoalDaleTimes的副本,并在指定的日期内减去日期
- public LocalDateTime minusYears(long years)
- public LocalDateTime minusMonths(long months)
- public LocalDateTime minusDays(long days)
- public LocalDateTime minusHours(long hours)
- public LocalDateTime minusMinutes(long minutes)
- public LocalDateTime minusSeconds(long seconds)
- 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
日期的比较
- public boolean isAfter(ChronoLocalDatetime other)
- public boolean isBefore(ChronoLocalDatetime other)
- 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