在Java中将long转换为Date
在Java中,将long类型的时间戳转换为Date对象有几种方法,时间戳通常是自1970年1月1日00:00:00 GMT(Unix纪元)以来的毫秒数。

方法1:使用Date构造函数(Java 8之前)
long timestamp = 1625097600000L; // 示例时间戳 Date date = new Date(timestamp); System.out.println(date);
方法2:使用Instant和Date(Java 8及以上)
Java 8引入了新的时间API,推荐使用Instant进行转换:
import java.time.Instant; import java.util.Date; long timestamp = 1625097600000L; Instant instant = Instant.ofEpochMilli(timestamp); Date date = Date.from(instant); System.out.println(date);
方法3:使用Calendar(Java 8之前)
import java.util.Calendar; import java.util.Date; long timestamp = 1625097600000L; Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(timestamp); Date date = calendar.getTime(); System.out.println(date);
注意事项
-
时区问题:Date对象内部使用UTC时间,但打印时会转换为本地时区,如果需要特定时区,可以使用SimpleDateFormat或Java 8的DateTimeFormatter。
-
Java 8+推荐:如果使用Java 8或更高版本,建议使用
java.time包中的类(如Instant,ZonedDateTime)而不是旧的Date和Calendar类。 -
精度问题:long时间戳通常表示毫秒,如果提供的是秒数,需要乘以1000。
(图片来源网络,侵删)
示例:格式化输出
import java.text.SimpleDateFormat;
import java.util.Date;
long timestamp = 1625097600000L;
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时间戳转换为Date对象,选择哪种方法取决于你的Java版本和具体需求。

