我的输入字符串是"mmyy“日期格式,我希望能够用一个具有相同格式"mmyy”的随机日期替换该字符串,但年份必须在2010年之前。我该怎么办?有什么建议吗?我必须设置SimpleDateFormat吗?
示例:输入:"0914“,我的输出应该是随机的,并返回一个类似于"0802”的字符串,其中"02“是2002年前的2010年。
谢谢
发布于 2015-07-02 07:33:15
在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 answer to a more general (and possibly duplicate) question。您还可以在那里找到Java 8之前的想法。
https://stackoverflow.com/questions/31172939
复制相似问题