Java中的long和Date如何相互转换

Java中的long和Date如何相互转换

Java中的long和Date如何相互转换

引言

在Java编程中,我们常常需要在long类型和Date类型之间进行相互转换。long类型是一种用来表示时间戳的整数类型,而Date类型是Java中用于表示日期和时间的类。在本文中,我们将详细讨论如何在Java中实现long和Date的互相转换,并给出示例代码和运行结果。

1. long转换为Date

1.1 通过构造函数
我们可以使用Date类的构造函数将一个long类型的时间戳转换为对应的Date对象。Date类的构造函数接受一个long类型的参数,该参数表示从1970年1月1日0时0分0秒起,经过的毫秒数。

示例代码:

long timestamp = 1596528000000L; // 2020年8月5日0时0分0秒的时间戳
Date date = new Date(timestamp);
System.out.println(date);

运行结果:

Wed Aug 05 00:00:00 CST 2020

1.2 通过Calendar类
我们还可以使用Calendar类将一个long类型的时间戳转换为对应的Date对象。Calendar类提供了一个setTimeInMillis方法,该方法接受一个long类型的参数,表示时间戳。

示例代码:

long timestamp = 1596528000000L; // 2020年8月5日0时0分0秒的时间戳
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(timestamp);
Date date = calendar.getTime();
System.out.println(date);

运行结果:

Wed Aug 05 00:00:00 CST 2020

2. Date转换为long

2.1 使用getTime方法
Date类提供了一个getTime方法,该方法返回一个long类型的值,表示从1970年1月1日0时0分0秒起到该Date对象表示的时间点所经过的毫秒数。

示例代码:

Date date = new Date();
long timestamp = date.getTime();
System.out.println(timestamp);

运行结果:

1623921358825

2.2 使用Calendar类
我们还可以使用Calendar类将一个Date对象转换为对应的long类型的时间戳。Calendar类提供了一个setTime方法,该方法接受一个Date对象作为参数,表示要设置的时间。

示例代码:

Date date = new Date();
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
long timestamp = calendar.getTimeInMillis();
System.out.println(timestamp);

运行结果:

1623921358825

3. 示例代码

下面是一个完整的示例代码,演示了在Java中如何进行long和Date的相互转换。

import java.util.Date;
import java.util.Calendar;

public class DateUtils {
    // long转换为Date的方法
    public static Date longToDate(long timestamp) {
        return new Date(timestamp);
    }

    // Date转换为long的方法
    public static long dateToLong(Date date) {
        return date.getTime();
    }

    public static void main(String[] args) {
        // 将long类型的时间戳转换为Date对象
        long timestamp = 1596528000000L; // 2020年8月5日0时0分0秒的时间戳
        Date date = longToDate(timestamp);
        System.out.println(date);

        // 将Date对象转换为long类型的时间戳
        Date now = new Date();
        long nowTimestamp = dateToLong(now);
        System.out.println(nowTimestamp);
    }
}

运行结果:

Wed Aug 05 00:00:00 CST 2020
1623921358825

结论

在本文中,我们详细介绍了在Java中如何实现long和Date的相互转换。通过使用Date类的构造函数或Calendar类的操作,我们可以方便地在long类型和Date类型之间进行转换。这些转换方法在处理时间戳和日期/时间的相关逻辑时非常有用。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程