java用yyyy-MM-dd HH:mm:ss转long值
时间: 2025-06-08 07:19:34 浏览: 17
### Java 中将 `yyyy-MM-dd HH:mm:ss` 转换为长时间戳
在 Java 中可以使用 `SimpleDateFormat` 来解析字符串形式的时间并将其转换成毫秒级时间戳。下面是一个具体的实现方法:
```java
import java.text.ParseException;
import java.text.SimpleDateFormat;
public class DateTimeToTimestamp {
public static void main(String[] args) {
String dateTimeStr = "2023-10-04 15:30:45";
try {
// 定义日期格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 将字符串按照指定格式解析为 Date 对象
var dateObj = sdf.parse(dateTimeStr);
// 获取自纪元以来的毫秒数表示的时间戳
long timestamp = dateObj.getTime();
System.out.println("The corresponding timestamp is: " + timestamp);
} catch (ParseException e) {
e.printStackTrace();
}
}
}
```
上述代码展示了如何定义一个特定模式来匹配给定的日期时间串,并通过调用 `parse()` 方法得到对应的 `Date` 实例对象,最后利用该实例的方法获取到从 Unix 纪元(即格林尼治标准时间 1970 年 1 月 1 日午夜)至今所经历过的总毫秒数作为最终的结果[^1]。
对于更现代的做法,在 Java 8 及以上版本推荐采用新的日期 API (`java.time`) 进行操作,因为其提供了更好的线程安全性和易读性:
```java
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
public class ModernDateTimeToTimestamp {
public static void main(String[] args){
String datetimeString = "2023-10-04 15:30:45";
// 创建 formatter 和 LocalDateTime 解析器
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
// 使用 formatter 解析字符串至 LocalDateTime 类型
LocalDateTime localDateTime = LocalDateTime.parse(datetimeString, formatter);
// 把 LocalDateTime 映射到 Instant 上再转成长整型的时间戳
long epochMilli = localDateTime.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
System.out.println("Modern approach yields the following millisecond-based timestamp:" + epochMilli);
}
}
```
这段程序同样实现了相同的功能——把形如 `'yyyy-MM-dd HH:mm:ss'` 的字符串转化为基于当前默认时区下的 UNIX 时间戳;不过这里采用了更为简洁直观的方式完成任务。
阅读全文
相关推荐



















