1、介绍
jdk 8 借鉴了joda-time,提供了一个好用的localDateTime类对时间进行操作,
2、例子:
package com.surfilter.mass;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Date;
/**
* [@Author](https://my.oschina.net/arthor) liufu
* @CreateTime 2018/5/10 16:53
*/
public class LocalDataTime {
public static void main(String[] args) {
//创建localDateTime,时间戳转换为localDatatime
LocalDateTime dateTime = LocalDateTime.now();
LocalDateTime dateTime1 = LocalDateTime.of(2018, 2, 1, 12, 24, 30);
LocalDateTime d = LocalDateTime.ofInstant(Instant.ofEpochMilli(1534383142000L), ZoneId.systemDefault());
//格式化
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String format = df.format(LocalDateTime.now());
LocalDateTime parse = LocalDateTime.parse("2018-12-01 11:02:30", df);
//获取时间戳(必须先指定时区)
long l1 = dateTime.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
long l2 = Instant.now().toEpochMilli();
long l3 = System.currentTimeMillis();
//和传统date转换
Date from = Date.from(dateTime.atZone(ZoneId.systemDefault()).toInstant());
LocalDateTime localDateTime = LocalDateTime.ofInstant(from.toInstant(), ZoneId.systemDefault());
//获取年月日
int year = dateTime.getYear();
int monthValue = dateTime.getMonthValue();
int dayOfYear = dateTime.getDayOfYear();
int dayOfMonth = dateTime.getDayOfMonth();
int hour = dateTime.getHour();
int minute = dateTime.getMinute();
int second = dateTime.getSecond();
//时间比较
dateTime.isAfter(dateTime1);
dateTime.isBefore(dateTime1);
//增加和减少
dateTime.plusYears(1);
dateTime.minusYears(1);
dateTime.plusMonths(1);
dateTime.minusMinutes(1);
dateTime.plusDays(1);
dateTime.minusDays(1);
dateTime.plusHours(1);
dateTime.minusHours(1);
dateTime.plusMinutes(1);
dateTime.minusMinutes(1);
dateTime.plusSeconds(1);
dateTime.minusSeconds(1);
dateTime.plusNanos(1);
dateTime.minusNanos(1);
//转化为localDate和localTime
dateTime.toLocalDate().toString();
dateTime.toLocalTime().toString();
//判断是否是闰年
boolean leapYear = dateTime.toLocalDate().isLeapYear();
//ZonedDateTime操作
ZoneId zoneId = ZoneId.systemDefault();
ZonedDateTime zonedDateTime = ZonedDateTime.of(2018, 2, 12, 12, 12, 12, 0, zoneId);
int year1 = zonedDateTime.getYear();
zonedDateTime.plusDays(1);
//获取时间戳
long l = zonedDateTime.toInstant().toEpochMilli();
}
}