当前位置: 首页 > 面试题库 >

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

柳飞鸾
2023-03-14
问题内容

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

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


问题答案:

您需要将随机数缩放到特定年份的范围,然后将年份的开始添加为偏移量。一年中的毫秒数从一年到另一年(le年有额外的一天,某些年份有leap分钟,依此类推),因此您可以按以下步骤确定范围:

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 1.7或更高版本中,执行此操作的标准方法如下: 请参阅相关的JavaDoc。这种方法的优点是不需要显式初始化java.util.Random实例,如果使用不当,可能会引起混乱和错误。 但是,相反,没有办法明确设置种子,因此在有用的情况下(例如测试或保存游戏状态或类似情况),很难重现结果。在这种情况下,可以使用下面显示的Java 1.

  • 每当我看到这行代码 后面总是有一个很长的序列号..这个数字是如何产生的?如果我想随机生成这个值,我该怎么做呢?谢谢你的帮助。

  • 问题内容: 是否可以使用Jodatime生成随机日期时间,以使日期时间的格式为yyyy-MM-dd HH:MM:SS,并且应该能够生成两个随机日期时间,其中Date2减去Date1会大于2分钟但小于60分钟 请提出一些方法。 问题答案: 这严格遵循您的要求(更正的格式除外)。 如果运行此命令,您会注意到多年来您将获得令人发指的值,但这仅仅是在DateTime整个可能范围(或该日期的Date)上生成

  • 问题内容: 我需要生成介于0(含)到n(不含)之间的任意大随机整数。我最初的想法是调用nextDoublen并乘以n,但是一旦n变得大于2 53,结果将不再均匀分布。 BigInteger 具有以下可用的构造函数: public BigInteger(int numBits, Random rnd) 构造一个随机生成的BigInteger,该整数均匀地分布在0到(2 numBits -1)(包括0

  • 问题内容: 我正在尝试在short原始数据类型的范围内(-32768,32767)生成随机整数。java Random对象仅生成正数。我将如何在该间隔内随机创建数字?谢谢。 问题答案: 您随机选择,然后减去

  • 问题内容: Go的库缺少生成64位数字的功能。大约四年来这是一个未解决的问题。同时,解决方法是什么样的? 问题答案: 最简单的方法是拨打两次: 另一个选择是调用(在Go 1.7中添加了 )以读取8个字节,然后使用该包从中获取值: 注意:作为状态文档,它始终读取与传递的切片长度相同的字节,并且始终返回错误,因此在这种情况下无需检查错误。 注意#2:您也可以使用代替,因为我们正在使用其所有字节生成一个