Jodatimeを使用してdatetimeの形式がyyyy-MM-dd HH:MM:SSとなるランダムなdatetimeを生成することは可能ですか?2つのランダムな日付時刻ここで、Date2からDate1を引いた値は2分より大きく60分より短くなります。いくつかの方法を提案してください。任意の日付は、長い番号で表すことができるという事実に基づいてjava(joda時間)のランダム日付時刻の生成
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. 2つの日付間の週Java + Joda時間
- 3. のjava:時刻/日付を比較し、時間差
- 4. Java - J2MEの日付/時刻の操作
- 5. 日付と日付時刻
- 6. MySQL検索日付と時刻の間
- 7. 再生フレームワークの日付と時刻?
- 8. java netbeansのJSpinner日付/時刻形式
- 9. Java 7の日付/時刻API
- 10. JavaのJoda日付/時刻ライブラリを使用して、「今日」の日付/時刻範囲を取得するにはどうすればよいですか?
- 11. PHP間違った日付/時刻
- 12. java日付時刻比較2
- 13. jsfの日付+時刻ピッカー
- 14. 時刻なしの日付
- 15. iphoneの日付と時刻
- 16. ASP.NETの日付時刻ピッカー
- 17. タイムゾーンの日付時刻
- 18. パンテイオスログファイル名の日付/時刻
- 19. VB.NETの日付時刻エラー
- 20. DataGridViewの日付時刻ピッカー
- 21. SQLサーバーの日付時刻
- 22. のMySQL - 日付/時刻
- 23. jQueryの日付と時刻
- 24. JSON日付からの時刻(時間なし)
- 25. 共有時刻の日付時刻リストフィールドの表示と変換
- 26. バッシュ日付/時刻算術
- 27. 日付時刻発行
- 28. 比較日付時刻
- 29. 変換スタンプ/日付時刻
- 30. Android - ネットワーク日付/時刻
これは、1970-01-01 dunnoの理由で乱数のみを生成します。 – chettyharish
最後の行は 'Timestamp rand = new Timestamp(rangebegin +(long)(Math.random()* diff));' – saschoar