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

在Java中生成随机日期时间(约达时间)

邹俊友
2023-03-14
问题内容

是否可以使用Jodatime生成随机日期时间,以使日期时间的格式为yyyy-MM-dd
HH:MM:SS,并且应该能够生成两个随机日期时间,其中Date2减去Date1会大于2分钟但小于60分钟 请提出一些方法。


问题答案:

这严格遵循您的要求(更正的格式除外)。

Random random = new Random();

DateTime startTime = new DateTime(random.nextLong()).withMillisOfSecond(0);

Minutes minimumPeriod = Minutes.TWO;
int minimumPeriodInSeconds = minimumPeriod.toStandardSeconds().getSeconds();
int maximumPeriodInSeconds = Hours.ONE.toStandardSeconds().getSeconds();

Seconds randomPeriod = Seconds.seconds(random.nextInt(maximumPeriodInSeconds - minimumPeriodInSeconds));
DateTime endTime = startTime.plus(minimumPeriod).plus(randomPeriod);

DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");

System.out.println(dateTimeFormatter.print(startTime));
System.out.println(dateTimeFormatter.print(endTime));

如果运行此命令,您会注意到多年来您将获得令人发指的值,但这仅仅是在DateTime整个可能范围(或该日期的Date)上生成随机DateTime的结果。但是,如果需要,可以将结束时间限制在一定范围内的相同技术也可以应用到开始时间。



 类似资料:
  • 问题内容: 我想生成一个随机时间戳,并向其添加一个随机增量,以生成第二个时间戳。那可能吗? 如果我传递随机的long值来创建时间戳,并且我想随机生成该long值,那么生成该值以给出2012年的时间戳的约束是什么? 问题答案: 您需要将随机数缩放到特定年份的范围,然后将年份的开始添加为偏移量。一年中的毫秒数从一年到另一年(le年有额外的一天,某些年份有leap分钟,依此类推),因此您可以按以下步骤确

  • 问题内容: 使用SQL时,是否可以在提供范围的列中插入随机的datetime值? 例如,给定范围为 我对范围部分感到困惑。正如我将要做的 问题答案: 这是一个应该有所帮助的示例: 它使用日期作为基础,将其转换为Unix时间戳,并向基础日期添加0到+2年的随机秒数,并将其转换回DATETIME。 它应该很接近,但在更长的时间内会leap年,其他调整会使其失效。

  • 本文向大家介绍java随机生成时间字符串的方法,包括了java随机生成时间字符串的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了java随机生成时间字符串的具体代码,供大家参考,具体内容如下 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 问题内容: 无论如何,是否可以验证给定日期(yyyy-MM- dd)是否为有效日期?它也应该处理leap年。例如(2015-02-29)应该无效。我将日期作为字符串检索,并将其放入joda DateTime对象。 问题答案: 我认为,这应该对您有用(如果您想保持简单)。 你必须做一个。

  • 问题内容: 我基本上是想将Unix时间戳(time()函数)转换为与过去和将来的日期都兼容的相对日期/时间。因此输出可能是: 2个星期前 1小时60分钟前 15分钟54秒前 10分钟15秒后 首先,我尝试编写此代码,但是做了一个无法维护的巨大功能,然后我在互联网上搜索了几个小时,但我所能找到的只是脚本仅产生一部分时间(例如:“ 1小时前”纪要)。 您是否已经有执行此操作的脚本? 问题答案: 此功能

  • 本文向大家介绍ASP.NET生成两个日期范围内随机时间的实现方法,包括了ASP.NET生成两个日期范围内随机时间的实现方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了ASP.NET生成两个日期范围内随机时间的实现方法。分享给大家供大家参考。具体方法分析如下: 想网上找个生成随机天数的方法找不到,后面只得自己写了,贴给大家方便使用 思路:算两个日期的相差天数,然后在0到相差天数的范围内生