从纪元时间/时间戳中删除毫秒|java的

Remove millisecond from epoch-time/timestamp | java

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

1
2
3
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',它显示错误。 如何从时间戳中删除毫秒部分?


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

如果您只想要yyyy-MM-dd hh:mm:ss部分,您可以这样做:

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

或者您可以使用SimpleDateFormat

1
2
Timestamp ts = new Timestamp(t*1000);
String s = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(ts);


试试这种方式....

1
2
3
4
5
6
7
8
9
10
11
12
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);
    }
}