Java Date、LocalDateTime、String互转

647 阅读1分钟

LocalDateTime

LocalDateTime 转 Date

LocalDateTime now = LocalDateTime.now();
Date localDateTime2Date = Date.from(now.atZone(ZoneId.systemDefault()).toInstant());

LocalDateTime 转 String

LocalDateTime now = LocalDateTime.now();
String localTime2String = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(now);

LocalDateTime 转 Long

Long time1 = LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli();

Date

Date 转 LocalDateTime

Instant instant = new Date().toInstant();
ZoneId zoneId = ZoneId.systemDefault();
LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, zoneId);

Date 转 String

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String date2String = dateFormat.format(new Date());

Date 转 Long

long time3 = new Date().getTime();

String

String 转 LocalDateTime

DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime string2LocalDateTime = LocalDateTime.parse("2018-01-12 17:07:05", dateTimeFormatter);

String 转 Date

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date string2Date = dateFormat.parse("2018-10-20 20:18:11");

注意:获取毫秒数的其他方式

// 获取当前毫秒
Long time2 = System.currentTimeMillis();
// 更精确的纳米级时间值
Long time4 = System.nanoTime();
// ali 不推荐使用
long time3 = new Date().getTime();