有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在特定时间之前生成日期?

我的输入字符串是“mmyy”日期格式,我希望能够将该字符串替换为具有相同格式“mmyy”的随机日期,但年份必须在2010年之前。我该怎么办?有什么建议吗?我必须设置SimpleDateFormat吗

示例:输入:“0914”,我的输出应该是随机的,并返回一个类似“0802”的字符串,其中“02”是2010年之前的2002年

谢谢


共 (1) 个答案

  1. # 1 楼答案

    对于Java 8版本,请尝试以下代码段:

    // Generate random date
    Random random = new Random();
    LocalDate maxDate = LocalDate.of(2010, 1, 1);
    long randomDay = random.nextInt((int) maxDate.toEpochDay());
    LocalDate randomDate = LocalDate.ofEpochDay(randomDay);
    
    // Convert to String using 'MMyy' pattern
    DateTimeFormatter dtf = DateTimeFormatter.ofPattern("MMyy");
    String result = dtf.format(randomDate.atStartOfDay());
    
    System.out.println(result);
    

    注1: 这应该会在1970年1月1日和2010年1月1日之间生成一个随机日期(不包括)——这是你想要的吗

    注2: 日期格式是固定的,并且按照您的表述方式预先知道。所以输入字符串不需要“替换”,只需使用result(除非我误解了?)

    注3:my answermore general (and possibly duplicate) question。你也可以在这里找到Java 8之前的想法