java - 如何在java中生成随机时间戳?

标签 java random timestamp

我想生成一个随机时间戳并向其添加一个随机增量以生成第二个时间戳。这可能吗?

如果我传递随机长值来创建时间戳,并且我想随机生成该长值,那么生成该值以在 2012 年给出时间戳的约束是什么?

最佳答案

您需要将随机数缩放到特定年份的范围内,并添加年份的开始作为偏移量。一年中的毫秒数从一年到另一年变化(闰年多一天,某些年份有闰分钟等),因此您可以在缩放之前确定范围,如下所示:

long offset = Timestamp.valueOf("2012-01-01 00:00:00").getTime();
long end = Timestamp.valueOf("2013-01-01 00:00:00").getTime();
long diff = end - offset + 1;
Timestamp rand = new Timestamp(offset + (long)(Math.random() * diff));

关于java - 如何在java中生成随机时间戳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11016336/

相关文章:

java - 如何在 Java 中从包内访问不在包内的文件

performance - 如何重构这个 Haskell 随机字节输出器?

regex - Jenkins 的 ClearCase 插件 - 带有正则表达式的分支

c++ - 为什么代码中会发生溢出(-2147483648)?

java - 如何使用 java.sql.Timestamp 减去日期

ruby-on-rails - Ruby/Rails - 如何将秒数转换为时间?

java - JFrame - 将方法结果输出到 JLabel 中

java - 如何更改自定义字体文本大小?

algorithm - rBST 的计算概率

java - OpenNLP 头规则