如何删除Date对象的子秒部分

use*_*108 3 java

当SQL数据类型为时间戳时,java.util.Date存储为2010-09-03 15:33:22.246,如何在存储记录之前将子秒设置为零(例如,在这种情况下为246).

Jon*_*eet 19

最简单的方法是:

long time = date.getTime();
date.setTime((time / 1000) * 1000);
Run Code Online (Sandbox Code Playgroud)

换句话说,清除"自1970年UTC以来毫升"的最后三位数字.

我相信如果它是a,那么将清除纳秒部分java.sql.Timestamp.


Erk*_*lat 9

这是一个想法:

public static void main(String[] args) {
       SimpleDateFormat df = new SimpleDateFormat("S");
       Date d = new Date();
       System.out.println(df.format(d));
       Calendar c = Calendar.getInstance();
       c.set(Calendar.MILLISECOND, 0);
       d.setTime(c.getTimeInMillis());
       System.out.println(df.format(d));

}
Run Code Online (Sandbox Code Playgroud)