Java:生成一个范围之间的随机日期(从当前日期/时间到随机未来日期的范围(例如,从当前日期/时间开始的5-10天)

时间:2017-11-22 20:14:55

标签: java date random

Java初学者。经过谷歌搜索和研究后,这是我认为生成当前日期/时间的最佳方式:

DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date = new Date();
  1. 如何将上述当前日期/时间放入变量?
  2. 如何从当前日期/时间生成RANDOM未来日期(例如,随机范围可以是5-10天),这意味着我没有未来日期的固定日期。
  3. 如何将未来日期存储到变量中?
  4. SIDE注意:为什么我问问题1和问题3,这是因为我可以使用存储两个日期的变量进行比较和评估(用于if-else块)

    非常感谢你的帮助!

1 个答案:

答案 0 :(得分:8)

您可以改为使用 LocalDateTime

import java.time.format.DateTimeFormatter;
import java.time.LocalDateTime;
import java.util.Random;

class Main {
  public static void main(String[] args) {
    // Declare DateTimeFormatter with desired format
    DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");

    // Save current LocalDateTime into a variable
    LocalDateTime localDateTime = LocalDateTime.now();

    // Format LocalDateTime into a String variable and print
    String formattedLocalDateTime = localDateTime.format(dateTimeFormatter);
    System.out.println("Current Date: " + formattedLocalDateTime);

    //Get random amount of days between 5 and 10
    Random random = new Random();
    int randomAmountOfDays = random.nextInt(10 - 5 + 1) + 5;
    System.out.println("Random amount of days: " + randomAmountOfDays);

    // Add randomAmountOfDays to LocalDateTime variable we defined earlier and store it into a new variable
    LocalDateTime futureLocalDateTime = localDateTime.plusDays(randomAmountOfDays);

    // Format new LocalDateTime variable into a String variable and print
    String formattedFutureLocalDateTime = futureLocalDateTime.format(dateTimeFormatter);
    System.out.println("Date " + randomAmountOfDays + " days in future: " + formattedFutureLocalDateTime);
  }
}

示例输出:

Current Date: 2017/11/22 20:41:03
Random amount of days: 7
Date 7 days in future: 2017/11/29 20:41:03
相关问题