4

我有一个纪元时间,我想将其转换为 sql 时间戳。我可以使用以下代码从纪元中提取实际时间:

String time = "1351504294";
long t = Long.parseLong(time);
Timestamp ts = new Timestamp(t*1000);

我得到的输出是:2012-10-29 09:58:50.0。但是当我尝试将其插入表中时,由于毫秒部分“09:58:50.0”而显示错误。如何从时间戳中删除毫秒部分?

4

2 回答 2

6

如果您将Timestamp直接添加到 SQL 语句中,那么 Java 将调用toString()始终输出格式的函数yyyy-mm-dd hh:mm:ss.fffffffff。您无法对Timestamp消除纳秒部分的对象做任何事情。

如果你只想要yyyy-MM-dd hh:mm:ss你可以做的部分:

Timestamp ts = new Timestamp(t*1000);
String s = ts.toString().split('\\.')[0];

或者你可以使用SimpleDateFormat

Timestamp ts = new Timestamp(t*1000);
String s = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(ts);
于 2012-10-29T04:57:37.557 回答
0

试试这个方法......

public class Time {

    public static void main(String[] args){

        String time = "1351504294";
        long t = Long.parseLong(time);
        Timestamp ts = new Timestamp(t*1000);

        String date = new SimpleDateFormat("YYYY-MM-dd hh:mm:ss").format(ts);
        System.out.println(date);
    }
}
于 2012-10-29T05:12:26.127 回答