杰瑞科技汇

Java中long如何转Date?

在Java中将long转换为Date

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

Java中long如何转Date?-图1
(图片来源网络,侵删)

方法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);

注意事项

  1. 时区问题:Date对象内部使用UTC时间,但打印时会转换为本地时区,如果需要特定时区,可以使用SimpleDateFormat或Java 8的DateTimeFormatter。

  2. Java 8+推荐:如果使用Java 8或更高版本,建议使用java.time包中的类(如Instant, ZonedDateTime)而不是旧的DateCalendar类。

  3. 精度问题:long时间戳通常表示毫秒,如果提供的是秒数,需要乘以1000。

    Java中long如何转Date?-图2
    (图片来源网络,侵删)

示例:格式化输出

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版本和具体需求。

Java中long如何转Date?-图3
(图片来源网络,侵删)
分享:
扫描分享到社交APP
上一篇
下一篇