控制随机时间戳的时间戳精度

时间:2015-03-02 08:57:56

标签: java random timestamp simpledateformat precision

我有一个用于生成随机日期字符串的代码。但是我发现当我生成一个随机时间戳时,它包含一些精确的小数点到秒字段。我的SimpleDateFormat怎么不包含这样的精度值,有没有人知道这里有什么问题,我怎样才能删除或控制精度值?

代码

long rangeBegin = Timestamp.valueOf("2015-01-01 00:00:00").getTime();
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    Date currentDate = new Date();
    String currentDateString = simpleDateFormat.format(currentDate);
    long rangeEnd = Timestamp.valueOf(currentDateString).getTime();
    long diff = rangeEnd - rangeBegin + 1;
    Timestamp randomTimestamp = new Timestamp(rangeBegin + (long)(Math.random() * diff));

示例输出

randomTimestamp = 2015-02-20 02:36:00。 646

由于

修改

String randomTimestampString = String.valueOf(randomTimestamp).split("\\.")[0];

2 个答案:

答案 0 :(得分:0)

小数点后的数字是小数精度,即纳秒。 您可以通过格式化或使用String.substring()方法将其剥离来消除它。

答案 1 :(得分:0)

  

randomTimestamp = 2015-02-20 02:36:00。 646

根据时间戳javadoc,这646表示精度的纳秒数