【发布时间】:2021-04-12 06:07:34
【问题描述】:
我正在尝试生成一个随机日期和时间,并将其转换为"yyyy-MM-dd'T'HH:mm:ss'Z'" 格式。
这是我尝试过的:
public static String generateRandomDateAndTimeInString() {
LocalDate date = LocalDate.now().minus(Period.ofDays((new Random().nextInt(365 * 70))));
System.out.println("date and time :: " + date.toString());
return formatDate(date) ;
}
public static String formatDate(LocalDate date){
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
return dateFormat.format(date);
}
但在dateFormat.format(date) 行中,它抱怨:
java.lang.IllegalArgumentException:无法将给定的对象格式化为日期
第二个问题是,print的输出不包含时间:
date :: 1998-12-24
我不知道如何让它工作。
【问题讨论】:
-
LocalDate只有一天、一个月和一年。如果您也想要一天中的时间,请考虑LocalDateTime,如果您想要偏移量或时区,请查看OffsetDateTime和ZonedDateTime。它们都可以通过合适的DateTImeFormatter从/到String进行解析和格式化。不再需要SimpleDateFormat...
标签: java datetime datetime-format localdate datetimeformatter