您的位置:

Java Date转换为Timestamp的完整实现指南

一、什么是Date和Timestamp

在Java中,Date和Timestamp都是表示时间的类,它们的区别在于精度不同。

Date的精度只能到毫秒,而Timestamp的精度可以到纳秒级别,因此在需要更高精度的时间计算中,应使用Timestamp。

二、Date转换为Timestamp的方式

Java中提供了两种方式将Date转换为Timestamp:直接转换和通过字符串转换。

1、直接转换

Date date = new Date();
Timestamp timestamp1 = new Timestamp(date.getTime());

在这种方式中,我们可以通过Date的getTime()方法获取其对应的时间戳,并将其传递给Timestamp的构造函数。

2、通过字符串转换

String str = "2022-01-01 00:00:00";
Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(str);
Timestamp timestamp2 = new Timestamp(date.getTime());

在这种方式中,我们首先需要将字符串转换为Date类型,然后再将其转换为Timestamp。

这里需要注意的是,需要使用SimpleDateFormat类来解析字符串,通过指定对应的格式,将字符串转换为Date类型。

三、Timestamp转换为Date的方式

与将Date转换为Timestamp相反,我们同样可以通过两种方式将Timestamp转换为Date:Timestamp的构造函数和格式化字符串。

1、Timestamp的构造函数

Timestamp timestamp = new Timestamp(System.currentTimeMillis());
Date date1 = new Date(timestamp.getTime());

在这种方式中,我们可以通过Timestamp的getTime()方法获取其对应的时间戳,并将其传递给Date的构造函数。

2、格式化字符串

String str = "2022-01-01 00:00:00";
Timestamp timestamp = Timestamp.valueOf(str);
Date date2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(str);

在这种方式中,我们可以通过Timestamp类的valueOf()方法将字符串转换为Timestamp类型,然后通过SimpleDateFormat类将其转换为Date类型。

四、完整代码示例

import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Test {

    public static void main(String[] args) throws Exception {
        
        // Date转换为Timestamp
        Date date = new Date();
        Timestamp timestamp1 = new Timestamp(date.getTime());
        
        String str = "2022-01-01 00:00:00";
        date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(str);
        Timestamp timestamp2 = new Timestamp(date.getTime());
        
        // Timestamp转换为Date
        Timestamp timestamp = new Timestamp(System.currentTimeMillis());
        Date date1 = new Date(timestamp.getTime());
        
        str = "2022-01-01 00:00:00";
        timestamp = Timestamp.valueOf(str);
        Date date2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(str);
    }
}