Java 日期转时间戳
在 Java 中,将日期对象转换为时间戳(毫秒数)主要有以下几种方式:

使用 java.util.Date 类
import java.util.Date;
public class DateToTimestamp {
public static void main(String[] args) {
// 创建当前日期对象
Date date = new Date();
// 转换为时间戳(毫秒数)
long timestamp = date.getTime();
System.out.println("当前时间戳: " + timestamp);
}
}
使用 java.time 包(Java 8+ 推荐)
Java 8 引入了新的日期时间 API,推荐使用 java.time 包:
import java.time.Instant;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.LocalDate;
import java.time.LocalDateTime;
public class DateToTimestampJava8 {
public static void main(String[] args) {
// 方式1: 使用 Instant 获取当前时间戳
long timestamp1 = Instant.now().toEpochMilli();
System.out.println("当前时间戳(Instant): " + timestamp1);
// 方式2: 从 LocalDateTime 转换
LocalDateTime localDateTime = LocalDateTime.now();
long timestamp2 = localDateTime.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
System.out.println("当前时间戳(LocalDateTime): " + timestamp2);
// 方式3: 从 LocalDate 转换
LocalDate localDate = LocalDate.now();
long timestamp3 = localDate.atStartOfDay(ZoneId.systemDefault()).toInstant().toEpochMilli();
System.out.println("当前时间戳(LocalDate): " + timestamp3);
}
}
从字符串日期解析并转换
import java.text.SimpleDateFormat;
import java.util.Date;
public StringDateToTimestamp {
public static void main(String[] args) throws Exception {
String dateString = "2025-05-15 14:30:00";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 解析字符串为 Date 对象
Date date = sdf.parse(dateString);
// 转换为时间戳
long timestamp = date.getTime();
System.out.println("日期字符串: " + dateString);
System.out.println("对应时间戳: " + timestamp);
}
}
使用 Calendar 类
import java.util.Calendar;
import java.util.Date;
public class CalendarToTimestamp {
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
// 设置日期时间(可选)
calendar.set(2025, Calendar.MAY, 15, 14, 30, 0);
// 转换为 Date 对象
Date date = calendar.getTime();
// 转换为时间戳
long timestamp = date.getTime();
System.out.println("Calendar 时间戳: " + timestamp);
}
}
注意事项
- 时间戳是自 1970 年 1 月 1 日 00:00:00 UTC 以来的毫秒数
- Java 8+ 的
java.timeAPI 是更现代、更安全的日期时间处理方式 - 时区处理很重要,特别是在跨时区应用中
- 对于数据库操作,通常使用
PreparedStatement.setTimestamp()方法
方法都可以将日期对象转换为时间戳(毫秒数),选择哪种方法取决于你的 Java 版本和具体需求。

