Java 格式化 long 类型日期

在 Java 中,我们经常需要对日期进行格式化和解析操作。而对于 long 类型的日期,通常表示为从某个固定时间点开始的毫秒数。本文将介绍如何使用 Java 来格式化 long 类型的日期,并提供一些示例代码。

什么是 long 类型的日期

在计算机中,日期和时间通常以某个固定时间点(通常是协调世界时,即UTC)开始的毫秒数来表示。Java 中的 long 类型可以用来存储这些毫秒数,从而表示一个具体的日期和时间。

格式化 long 类型的日期

Java 提供了 SimpleDateFormat 类来进行日期格式化操作。它可以将日期对象或毫秒数转换为指定格式的字符串,也可以将字符串转换为日期对象或毫秒数。

对于 long 类型的日期,我们可以先将其转换为 Date 对象,然后再进行格式化。以下是一个示例代码:

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

public class LongDateFormatter {
    public static void main(String[] args) {
        long timestamp = 1634251621000L;
        Date date = new Date(timestamp);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String formattedDate = sdf.format(date);
        System.out.println(formattedDate);
    }
}

上述代码中,我们首先定义了一个 long 类型的日期 timestamp,然后将其转换为 Date 对象。接着,我们创建了一个 SimpleDateFormat 对象 sdf,并指定了日期的格式为 "yyyy-MM-dd HH:mm:ss"。最后,我们通过调用 sdf.format(date) 方法,将日期格式化为字符串,并打印输出。

输出结果为:2021-10-15 13:27:01

使用自定义格式化符号

在 SimpleDateFormat 中,我们可以使用一些自定义的格式化符号来表示不同的日期和时间字段。以下是一些常用的格式化符号:

  • y:年份,例如 2021
  • M:月份,例如 1010月
  • d:天数,例如 15
  • H:小时(24小时制),例如 13
  • h:小时(12小时制),例如 1
  • m:分钟,例如 27
  • s:秒钟,例如 1
  • S:毫秒数,例如 123

除了上述符号外,还可以使用其他符号来表示日期和时间的分隔符,例如 -./ 等。

以下是一个使用自定义格式化符号的示例代码:

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

public class CustomDateFormatter {
    public static void main(String[] args) {
        long timestamp = 1634251621000L;
        Date date = new Date(timestamp);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒SSS毫秒");
        String formattedDate = sdf.format(date);
        System.out.println(formattedDate);
    }
}

上述代码中,我们使用了自定义的格式化符号来表示日期和时间字段,并在格式化字符串中添加了中文描述,以增加可读性。

输出结果为:2021年10月15日 13时27分01秒000毫秒

总结

本文介绍了如何使用 Java 格式化 long 类型的日期。我们可以通过将 long 类型的日期转换为 Date 对象,并使用 SimpleDateFormat 类将其格式化为指定格式的字符串。同时,我们还可以使用自定义的格式化符号来表示不同的日期和时间字段。

希望本文对你理解 Java 中 long 类型日期的格式化操作有所帮助。如果还有其他相关问题,欢迎留言讨论。


关系图如下所示:

erDiagram
    Date ||.. SimpleDateFormat : 使用
    SimpleDateFormat ||.. CustomDateFormatter : 继承

序列图如下所示:

sequenceDiagram
    participant Main
    participant Date
    participant SimpleDateFormat
    participant CustomDateFormatter
    Main ->> Date: long timestamp
    Note over Date: 将 timestamp 转换为 Date 对象
    Date ->> SimpleDateFormat: Date date
    Note over SimpleDateFormat: 创建 SimpleDateFormat 对象
    SimpleDateFormat ->> SimpleDateFormat: format(date)
    Note over SimpleDateFormat: 将 date 格式化为字符串
    SimpleDateFormat -->> Main: formattedDate