是否有可能使用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