0

我需要从 java 中的 Timestamp 值中截断毫秒值。

例如:

Timestamp time=2013-09-23 17:57:19.860;

异常输出:

Time: 2013-09-23 17:57:19

请帮我减少毫秒

4

4 回答 4

4

使用SimpleDateFormat

String date = new java.text.SimpleDateFormat("dd/MM/yyyy HH:mm:ss").format(time.getDate());
于 2013-09-23T13:53:52.810 回答
2

您可以使用时间单位:

long currentTimeMillis = System.currentTimeMillis();
long currentTimeSeconds = TimeUnit.SECONDS.convert(currentTimeMillis, TimeUnit.MILLISECONDS) ;
long millisUpToSecond = TimeUnit.MILLISECONDS.convert(currentTimeSeconds, TimeUnit.SECONDS);

// just to verify
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss,SSS");
System.out.println(dateFormat.format(new Date(millisUpToSecond )));
于 2013-09-23T14:08:04.670 回答
2
     String t = "2013-09-23 17:57:19.860";
     String[] split = t.split(java.util.regex.Pattern.quote("."));
     String result= split[0];
     System.out.println(result);

更新

     DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");       
     Date date = dateFormat.parse("2013-09-23 17:57:19.860");
     long time = date.getTime();
     Timestamp timestamp =new Timestamp(time);      
     SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss,SSS");
     String result = dateFormat.format(new Date(timestamp.getTime() ));
于 2013-09-23T14:02:52.453 回答
1

这是一种方法。否则,使用手动将最后 3 位数字设置为 0 的硬方法。

    Timestamp ts = new Timestamp(System.currentTimeMillis());

    System.out.println(ts); // 2013-09-23 15:52:45.88
    Calendar cal = Calendar.getInstance();
    cal.clear();
    cal.setTimeInMillis(ts.getTime());
    cal.set(Calendar.MILLISECOND, 0);
    System.out.println(cal.getTime()); // Mon Sep 23 15:52:45 CEST 2013
于 2013-09-23T13:53:55.660 回答