是否有可能使用Jodatime使得日期时间的格式为YYYY-MM-DD生成一个随机的datetime HH:MM:SS,它应该能够产生两个随机日期时间其中Date2减去Date1将大于2分钟但小于60分钟。请提出一些方法。生成的Java(乔达时间)随机日期时间
8
A
回答
10
在此之前相当严格的你问什么(除了更正格式)。
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的结果(或日期为此事) 。但是,如果需要,将限制结束时间限制到一定范围的技术也可以应用于开始时间。
11
简单
long rangebegin = Timestamp.valueOf("2013-02-08 00:00:00").getTime();
long rangeend = Timestamp.valueOf("2013-02-08 00:58:00").getTime();
long diff = rangeend - rangebegin + 1;
Timestamp rand = new Timestamp(rangebegin + (long)(Math.random() * diff));
1
基于一个事实,即任何日期可通过较长的数字来表示,采取Date类,http://docs.oracle.com/javase/1.4.2/docs/api/java/util/Date.html#Date(long)的这个方法一看,你可以定义一个最大日期1,我们说今天,并随机分配添加的分钟数。
换句话说:
- 步骤1 - 将随机长数目或设置数为日期1
- 步骤2 - 随机化分钟加,乘随机由58 分钟(58×60 ×1000),并添加到日期1,再加上2分钟(2× 60×1000)
1
尝试
Random r = new Random();
long t1 = System.currentTimeMillis() + r.nextInt();
long t2 = t1 + 2 * 60 * 1000 + r.nextInt(60 * 1000) + 1;
DateTime d1 = new DateTime(t1);
DateTime d2 = new DateTime(t2);
-2
您可以使用Math.random()生成一个随机数; 您可以使用这项值
相关问题
- 1. 乔达:将日期和时间转换为日期时间
- 2. 如何乔达日期时间转换成JPA本机查询
- 3. Vaadin与乔达日期时间
- 4. 休眠乔达日期时间排序
- 5. 不是从乔达日期时间
- 6. 与乔达时间解析周日期?
- 7. 映射乔达日期时间
- 8. 乔达时间:日期计算
- 9. 乔达时间 - 两个日期
- 10. 机器人 - 随机生成的日期和时间
- 11. java:随机时间生成器
- 12. 乔达日期时间到时间戳转换
- 13. 在乔达时间,设置日期时间开始一个月
- 14. 自由日期/时间乔达时间解析
- 15. 随机时间生成
- 16. 乔达时间持续期间
- 17. 如何在两个日期之间生成随机日期和时间?
- 18. 随机数随着乔达时间的变化
- 19. 的Java 8 ZonedDateTime或OffsetDateTime更换乔达日期时间
- 20. 十进制格式的日期时间在Java或乔达
- 21. 保存日期GMT格式乔达时间 - Java的
- 22. 乔达日期时间数组排序数组按日期时间
- 23. 为明天的日期生成随机unix时间戳
- 24. 乔达时间,DateTimeFormatter
- 25. ,Java时间戳:乔达VS日期VS龙
- 26. Groovy的乔达时间转换时间
- 27. 在服务中生成随机日期和时间
- 28. 在C++中随机生成日期和时间
- 29. 使用VB脚本随机生成日期时间
- 30. 独立日期时间日期和时间与时区`Z`末,在乔达时间
这就生成只与日期1970-01-01不知道为什么一个随机数。 – chettyharish 2013-02-08 12:23:49
我认为最后一行应该是'Timestamp rand = new Timestamp(rangebegin +(long)(Math.random()* diff));'' – saschoar 2014-04-15 13:40:46