如何在 Java 中将字符串转换为时间戳?

2024年9月10日 | 阅读 2 分钟

在 Java 中,将字符串转换为时间戳涉及将日期的字符串表示解析为 `java.sql.Timestamp` 对象。当处理从外部源或用户输入获取的日期和时间数据时,这个过程通常是必需的。在本节中,我们将探讨如何在 Java 中将字符串转换为时间戳,涵盖不同的场景和方法。

方法 1:使用 SimpleDateFormat

将字符串转换为时间戳的传统方法之一是使用 `SimpleDateFormat` 类。此类允许您定义一个表示输入字符串中日期和时间格式的模式。以下是一个示例:

文件名:StringToTimestampExample.java

输出

Input String: 2024-01-04 12:30:45
Converted Timestamp: 2024-01-04 12:30:45.0

在此示例中,我们定义了“yyyy-MM-dd HH:mm:ss”模式以匹配输入字符串的格式。然后使用 `SimpleDateFormat` 将字符串解析为 `Date` 对象,然后从该 `Date` 创建 `Timestamp` 对象。

方法 2:使用 Instant 和 DateTimeFormatter(Java 8 及更高版本)

随着 Java 8 中引入 `java.time` 包,可以使用 `Instant` 和 `DateTimeFormatter` 类提供更现代、更灵活的方法。以下是一个示例:

文件名:StringToTimestampExample2.java

输出

Input String: 2024-01-04 12:30:45
Converted Timestamp: 2024-01-04 12:30:45.0

在此示例中,我们使用 `DateTimeFormatter` 定义模式,并使用 `Instant` 表示一个时间点。输入字符串被解析为 `Instant` 对象,然后我们将其转换为 `Timestamp`。

结论

在 Java 中将字符串转换为时间戳涉及使用特定的日期和时间模式解析字符串。在 `SimpleDateFormat` 和较新的 `DateTimeFormatter` 之间进行选择取决于您使用的 Java 版本。对于 Java 8 及更高版本,建议使用 `java.time` API 以获得更好的功能和线程安全性。始终处理解析过程中可能发生的异常,以确保代码的健壮性。