Instant
Instant时间戳
-
JDK8可以方便的获取时间戳,且功能丰富,Instant类由一个静态的工厂方法now()可以返回当前时间戳
Instant instant = Instant.now(); System.out.println("当前时间戳:" + instant); Date date = Date.from(instant); System.out.println("当前时间戳:" + date); instant = date.toInstant(); System.out.println(instant);
-
时间戳是包含日期和时间的(即某一时刻年月日时分秒),与java.util.Date很类似,事实上Instant就类似于JDK8以前的Date
-
Instant和Date是两个类可以进行转换
测试代码
- atZone():instant.atZone(ZoneId.systemDefault()) 使用默认时区
- Date.from():将Instant对象转换成Date对象
- toInstant():将Date对象转换成Instant对象
package com.java.jdk8time_update;
import java.time.Instant;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.Date;
/**
* Instant类由一个静态的工厂方法now()可以返回当前时间戳
*/
public class InstantTest {
public static void main(String[] args) {
// 得到一个时间戳对象
Instant instant = Instant.now();
// 所得时间戳不是本时区的
System.out.println("当前时间戳:" + instant); // 打印的是内容说明重写了toString()方法
// 使用atZone选定时区
ZonedDateTime instantResult = instant.atZone(ZoneId.systemDefault()); //返回新的时间戳
System.out.println(instant.atZone(ZoneId.systemDefault()));
// 时间戳也可以使用isBefore或者isAfter等相关API(甚至加减)
System.out.println(instant.isAfter(Instant.from(instantResult)));
// Instant返回Date对象,使用Date.from()完成对象转换
Date date = Date.from(instant);
System.out.println("当前时间戳:" + date);
// Date对象转换成时间戳对象,使用toInstant()完成对象转换
instant = date.toInstant();
System.out.println(instant);
}
}
DateTimeFormatter
概述
日期时间格式化
- 在JDK8中,引入了一个全新的日期与时间格式器(DateTimeFormatter)
- 正反都能调用format方法
测试代码
package com.java.jdk8time_update;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class DateTimeFormatterTest {
public static void main(String[] args) {
// 本地时刻 日期时间 对象
LocalDateTime ldt = LocalDateTime.now();
System.out.println(ldt);
// 解析/格式化器
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
// 正向格式化(格式化器格式化对象)
String ldtStr1 = dtf.format(ldt);
System.out.println(ldtStr1);
// 逆向格式化(对象格式化格式化器,最终也会把对象自己格式化)
String ldtStr = ldt.format(dtf);
System.out.println(ldtStr);
// 解析字符串时间
DateTimeFormatter dtf1 = DateTimeFormatter.ofPattern("yyy-MM-dd HH:mm:ss");
String dateStr = "2011-11-11 11:11:11";
// 解析当前字符串时间成为本地日期时间对象
// 调用parse()方法:参数一:待解析字符串型日期 参数二:对象格式化器
LocalDateTime ldt1 = LocalDateTime.parse(dateStr,dtf1);
System.out.println(ldt1);
// 解析完成后字符串日期对象变成了本地日期时间对象,因此可以调用一些操作
System.out.println(ldt1.getDayOfYear());
}
}
网友评论