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. JavaのJoda時間を使用しているJavaの現在の日付時刻(時刻型)
- 2. Java Joda時間isAfter日付解決
- 3. Java Joda時刻複数の日付書式コードの最適化
- 4. 間隔の間の日付時刻のリストを生成する
- 5. 2つの日付間の週Java + Joda時間
- 6. Jodaの時刻をJavaの時刻に変換するインスタント
- 7. のjava:時刻/日付を比較し、時間差
- 8. HibernateでのJoda日付時刻の固定
- 9. fecha.js - 日付/時刻、特定の時刻
- 10. Java - J2MEの日付/時刻の操作
- 11. MySQL検索日付と時刻の間
- 12. 日付時刻の間にLinuxでカウントファイル
- 13. Joda日付時刻文字列をJava.Sql.TimeStampに変換します。
- 14. java netbeansのJSpinner日付/時刻形式
- 15. Java 7の日付/時刻API
- 16. IsAfterローカル日付時刻の使用JAVA
- 17. 日付と日付時刻
- 18. 再生フレームワークの日付と時刻?
- 19. JavaのJoda日付/時刻ライブラリを使用して、「今日」の日付/時刻範囲を取得するにはどうすればよいですか?
- 20. c#時刻からsql日付時刻
- 21. は、日付時刻
- 22. オラクル - 日付/時刻
- 23. Java:範囲(現在の日付/時刻からランダムな将来の日付(たとえば、現在の日付/時刻から5〜10日)までの範囲のランダムな日付を生成)
- 24. 2つの日付間の最大日付/時刻を取得
- 25. PHP間違った日付/時刻
- 26. 間違った日付時刻がパンダ
- 27. java日付時刻比較2
- 28. UTCの日付時間をメキシコの日付時刻に変換する方法
- 29. 日付の日付/時刻をR
- 30. クライアント/ユーザタイムゾーンのメールコンテンツ/本文の日付/時刻/時間を表示
これは、1970-01-01 dunnoの理由で乱数のみを生成します。 – chettyharish
最後の行は 'Timestamp rand = new Timestamp(rangebegin +(long)(Math.random()* diff));' – saschoar