Java Date Format 获取微秒

介绍

在Java中,我们经常需要处理日期和时间。Java提供了Date类和SimpleDateFormat类来处理日期和时间的格式化和解析。然而,默认情况下,Java的Date类只能精确到毫秒级别,而无法获取微秒。本文将介绍如何使用Java的Date类和SimpleDateFormat类来获取微秒,并提供相应的代码示例。

Java的Date类

Java的Date类表示特定的瞬间,精确到毫秒级别。要获取当前的日期和时间,可以使用Date类的无参构造方法:

Date date = new Date();
System.out.println(date);

输出结果类似于:Sat Jan 01 00:00:00 CST 2022

要获取当前日期和时间的微秒,可以使用System类的currentTimeMillis方法:

long currentTime = System.currentTimeMillis();
Date date = new Date(currentTime);
System.out.println(date);

输出结果类似于:Sat Jan 01 00:00:00.123 CST 2022

上述代码中,System.currentTimeMillis方法返回当前时间的毫秒数,然后将该毫秒数传递给Date类的构造方法来创建一个Date对象。这样就可以得到当前日期和时间,包括毫秒。

SimpleDateFormat类

SimpleDateFormat类是Java中用于日期和时间格式化的类。它定义了一些预定义的模式(例如"yyyy-MM-dd"表示年-月-日),也支持自定义模式。要获取微秒,我们可以使用自定义模式"yyyy-MM-dd HH:mm:ss.SSSSSS"。其中,SSSSSS表示微秒。

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSSSSS");
String formattedDate = sdf.format(date);
System.out.println(formattedDate);

输出结果类似于:2022-01-01 00:00:00.123456

上述代码中,首先创建一个SimpleDateFormat对象,并将自定义的日期模式传递给构造方法。然后使用format方法将Date对象格式化为指定模式的字符串。

完整示例

下面是一个完整的示例,演示如何获取当前日期和时间的微秒:

import java.text.SimpleDateFormat;
import java.util.Date;

public class Main {
    public static void main(String[] args) {
        Date date = new Date();
        long currentTime = System.currentTimeMillis();
        date.setTime(currentTime);

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSSSSS");
        String formattedDate = sdf.format(date);
        System.out.println(formattedDate);
    }
}

输出结果类似于:2022-01-01 00:00:00.123456

序列图

下面是一个描述Java Date Format获取微秒的序列图:

sequenceDiagram
    participant App
    participant Date
    participant System
    participant SimpleDateFormat

    App->>Date: 创建Date对象
    App->>System: 调用currentTimeMillis方法
    System->>Date: 返回当前时间的毫秒数
    App->>Date: 调用setTime方法
    App->>SimpleDateFormat: 创建SimpleDateFormat对象
    SimpleDateFormat->>SimpleDateFormat: 设置日期模式
    App->>SimpleDateFormat: 调用format方法
    SimpleDateFormat->>Date: 格式化Date对象
    App->>System.out: 输出格式化后的日期字符串

结论

Java的Date类和SimpleDateFormat类提供了方便的日期和时间处理功能。通过使用Date类的构造方法和System类的currentTimeMillis方法,我们可以获取包括微秒在内的当前日期和时间。然后,使用SimpleDateFormat类的format方法,可以将Date对象格式化为指定模式的字符串。希望本文对于理解和使用Java的日期格式化有所帮助。