我的输入字符串是"mmyy"日期格式,我希望能够用相同格式的随机日期替换该字符串,但年份必须在2010年之前。我该怎么办?有什么建议吗?我必须设置SimpleDateFormat吗?
示例:input:"0914",我的输出应该是随机的,并返回一个类似"0802"的字符串,其中"02"是2002,即2010年之前的2002。
感谢
尝试以下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月(不包括)之间的随机日期——这是你想要的吗?
注2:日期格式是固定的,并且按照您所说的方式先验已知。因此,不需要输入字符串"替换",只需使用result
(除非我误解了?)
注意3:请参阅我对一个更一般(可能也是重复的)问题的回答。您还可以在那里找到Java 8之前的想法。