📅  最后修改于: 2023-12-03 14:42:21.368000             🧑  作者: Mango
java.time.Instant
类是Java 8新引入的日期时间API中的一个类,它是一种表示距离标准基准时间(1970年1月1日00:00:00 UTC)的时间戳的方式,精确到纳秒级别。
您可以使用以下方法之一来创建Instant对象:
Instant.now()
方法:这个方法将当前时间转换为Instant对象。
Instant instant = Instant.now();
Instant.ofEpochSecond()
方法:这个方法将给定的秒数作为参数,并返回对应的Instant对象。
Instant instant = Instant.ofEpochSecond(epochSecond);
Instant.ofEpochSecond()
方法的重载版本:这个方法将给定的秒数和纳秒数作为参数,并返回对应的Instant对象。
Instant instant = Instant.ofEpochSecond(epochSecond, nanoAdjustment);
Instant对象可以轻松地转换为Java 8日期时间API中的其他任何日期时间类型,例如LocalDateTime
和ZonedDateTime
。您可以使用以下方法之一来执行此操作:
Instant.atZone()
方法:这个方法将Instant对象转换为ZonedDateTime
对象,需要提供时区信息。
ZonedDateTime zonedDateTime = instant.atZone(ZoneId.of("Asia/Shanghai"));
Instant.toEpochMilli()
方法:这个方法返回从1970年1月1日00:00:00 UTC到指定的Instant对象的毫秒数。
long epochMilli = instant.toEpochMilli();
您可以使用以下方法之一来比较Instant对象:
Instant.isBefore()
方法:如果当前Instant对象早于给定的Instant对象,则返回true。
boolean isBefore = instant.isBefore(otherInstant);
Instant.isAfter()
方法:如果当前Instant对象晚于给定的Instant对象,则返回true。
boolean isAfter = instant.isAfter(otherInstant);
您可以使用以下方法之一来将Instant对象格式化为字符串:
Instant.toString()
方法:这个方法将Instant对象转换为ISO-8601格式的字符串。
String iso8601String = instant.toString();
DateTimeFormatter
类:您可以使用DateTimeFormatter
类来将Instant对象格式化为自定义格式的字符串。
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String formattedString = formatter.format(instant);
Java 8日期时间API中的java.time.Instant
类提供了一种简单而高效的方式来处理时间戳(即距离基准时间的秒数和纳秒数)。该类还提供了各种方法来执行Instant对象与其他日期时间类型之间的转换、比较和格式化。