我有一个纪元时间,我想转换为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',它显示错误。如何从时间戳中删除毫秒部分?
答案 0 :(得分:3)
如果要将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);
答案 1 :(得分: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);
}
}