我有一个用于生成随机日期字符串的代码。但是我发现当我生成一个随机时间戳时,它包含一些精确的小数点到秒字段。我的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];
答案 0 :(得分:0)
小数点后的数字是小数精度,即纳秒。 您可以通过格式化或使用String.substring()方法将其剥离来消除它。
答案 1 :(得分:0)
randomTimestamp = 2015-02-20 02:36:00。 646
根据时间戳javadoc,这646表示精度的纳秒数