前言:
小编吃了点药药,
终于流感要好啦(嘻嘻)
我们继续日更吧!!!
我们一直都是以这样的形式,让新手小白轻松理解复杂晦涩的概念,
把Java代码拆解的清清楚楚,每一步都知道他是怎么来的,
为什么用这串代码关键字,对比同类型的代码,
让大家真正看完以后融会贯通,举一反三,实践应用!!!!
①官方定义 和 大白话拆解对比
②举生活中常见贴合例子、图解辅助理解的形式
③对代码实例中关键部分进行详细拆解、总结
给小编一个赞或者关注吧,我们一起进步!!
官方语言:
- java.time.Instant 类表示时间线上的一个瞬时点,它通常用来记录事件发生的时间戳。
- 这个类提供了对时间的一种绝对表示方法,不依赖于任何时区或夏令时规则。
- 它的值是自2025年1月17日00:00:00(UTC)以来的秒数和纳秒数。Instant 类可以用于需要高精度时间戳的场景,比如记录日志、数据库事务时间等。
大白话拆解:
- 现在有一个永远不会停下来的计时器,从很久以前的一个固定时刻开始计时——那就是2025年1月17日午夜(UTC时间)。
- 每当有事情发生时,你可以看看这个计时器显示的数字,这就是那个事情发生的“时间戳”。无论你在世界的哪个角落,这个计时器都以相同的方式计时,所以它可以精确地告诉你事情是在什么时候发生的。
- 在Java中,我们使用Instant来表示这样的时间点。
举个栗子:
import java.time.Instant;
public class InstantExample {
public static void main(String[] args) {
// 获取当前时间的Instant对象
Instant now = Instant.now();
System.out.println("当前时间戳: " + now);
// 创建一个指定秒数和纳秒数的Instant对象
Instant specificInstant = Instant.ofEpochSecond(1609459200); // 2021-01-01T00:00:00Z
System.out.println("特定时间戳: " + specificInstant);
// 添加1小时到当前时间戳
Instant oneHourLater = now.plusSeconds(3600);
System.out.println("1小时后的时间戳: " + oneHourLater);
// 比较两个Instant对象
if (oneHourLater.isAfter(now)) {
System.out.println("oneHourLater 发生在 now 之后");
} else if (oneHourLater.isBefore(now)) {
System.out.println("oneHourLater 发生在 now 之前");
} else {
System.out.println("oneHourLater 和 now 是同一时间");
}
}
}
代码解释和总结:
1、获取当前时间的Instant对象
Instant now = Instant.now();
System.out.println("当前时间戳: " + now);
- 解释: 这段代码获取了当前的时间,并将其存储在一个名为now的变量中。这个时间是以一种叫做“时间戳”的形式表示的,它是一种记录具体时刻的方法。然后,这段代码会打印出这个时间戳。
2、创建一个指定秒数和纳秒数的Instant对象
Instant specificInstant = Instant.ofEpochSecond(1609459200); // 2021-01-01T00:00:00Z
System.out.println("特定时间戳: " + specificInstant);
- 解释: 这里我们创建了一个特定时间的Instant对象,它代表的是2021年1月1日午夜(00:00)这一刻。这个时间也是以时间戳的形式表示的,这里的数字1609459200就是那个时间点的时间戳。接着,这段代码也会打印出这个特定的时间戳。
3、添加1小时到当前时间戳
Instant oneHourLater = now.plusSeconds(3600);
System.out.println("1小时后的时间戳: " + oneHourLater);
- 解释: 这里我们将当前时间(即now变量所表示的时间)向后推移了1个小时(1小时等于3600秒),并把这个新的时间存入了一个名为oneHourLater的变量中。然后,打印出这个新时间的时间戳。
4、比较两个Instant对象
if (oneHourLater.isAfter(now)) {
System.out.println("oneHourLater 发生在 now 之后");
} else if (oneHourLater.isBefore(now)) {
System.out.println("oneHourLater 发生在 now 之前");
} else {
System.out.println("oneHourLater 和 now 是同一时间");
}
- 解释: 这一部分代码是在比较两个时间(oneHourLater和now)。通过调用isAfter()方法来检查oneHourLater是否晚于now;如果oneHourLater确实比now晚,那么就会打印出“oneHourLater 发生在 now 之后”。同样地,如果oneHourLater早于now,则打印“oneHourLater 发生在 now 之前”。如果两者是同一个时间,则打印“oneHourLater 和 now 是同一时间”。
1. ofPattern(String pattern)
官方语言:
- DateTimeFormatter.ofPattern(String pattern):这是一个静态方法,返回一个指定字符串格式的DateTimeFormatter对象。
- 这个格式化器可以根据给定的模式字符串来解析和格式化日期时间。
大白话拆解:
- ofPattern(String pattern):这个方法根据你提供的模式字符串创建一个格式化器。你可以用这个格式化器来把日期时间转换成字符串,或者反过来把字符串转换成日期时间。
2. format(TemporalAccessor t)
官方语言解释:
- format(TemporalAccessor t):使用当前的DateTimeFormatter格式化一个日期、时间或日期时间,并返回一个字符串表示。
大白话拆解:
- format(TemporalAccessor t):这个方法可以把一个日期、时间或日期时间对象按照你之前设置的格式转换成字符串。
3. parse(CharSequence text)
官方语言解释:
- parse(CharSequence text):将指定格式的字符序列解析为一个日期、时间或日期时间对象。
大白话拆解:
- parse(CharSequence text):这个方法可以把符合特定格式的字符串转换成日期、时间或日期时间对象。
举个栗子
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class DateTimeFormatterExample {
public static void main(String[] args) {
// 创建日期时间对象
LocalDate date = LocalDate.now();
LocalDateTime dateTime = LocalDateTime.now();
// 创建一个格式化器
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
// 格式化日期时间
String formattedDate = date.format(formatter);
String formattedDateTime = dateTime.format(formatter);
System.out.println("格式化后的日期: " + formattedDate);
System.out.println("格式化后的日期时间: " + formattedDateTime);
// 解析日期时间
LocalDateTime parsedDateTime = LocalDateTime.parse(formattedDateTime, formatter);
System.out.println("解析后的日期时间: " + parsedDateTime);
}
}
创建日期时间对象
LocalDate date = LocalDate.now();
LocalDateTime dateTime = LocalDateTime.now();
创建一个格式化器
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
格式化日期时间
String formattedDate = date.format(formatter);
String formattedDateTime = dateTime.format(formatter);
输出格式化后的日期时间
System.out.println("格式化后的日期: " + formattedDate);
System.out.println("格式化后的日期时间: " + formattedDateTime);
解析日期时间:
LocalDateTime parsedDateTime = LocalDateTime.parse(formattedDateTime, formatter);
输出解析后的日期时间:
System.out.println("解析后的日期时间: " + parsedDateTime);
我们今天就到这里,下次见吧!!!
标签:Instant,System,println,拆解,时间,DateTimeFormatter,oneHourLater,格式化,now From: https://blog.csdn.net/2401_86356924/article/details/145212801