Java 更改特定日期的日期格式
Java Changing date format for a specific day
我想使用 SimpleDateFormat 按以下格式编写今天的日期:
今天,13:14
在其他日子,我想将其打印为日期和时间:
2021 年 12 月 6 日,12:59
我可以写前几天的日期和时间格式,但不能写白天的“今天 [HOUR]”格式。
textViewDate.setText(new SimpleDateFormat("dd.MM.yyyy HH:mm")
请指导。谢谢。
我不知道现有的日期格式可以满足您的要求。所以你必须自己做条件案例。
如果日期在“今天”范围内(但是您想要定义它,关于时区等),请使用“今天”格式生成文本。如果在外面,请使用通用格式。
如果你使用java +8,你可以使用Date/Time API (LocalDate) 来计算两个日期之间的差异,并检查它是否相同的日期,根据比较选择您的格式 Java Date Format
java.time
这需要两个格式化程序和一个 if
语句。
考虑使用 java.time,现代 Java 日期和时间 API,作为您的日期和时间工作。让我们先声明两个格式化程序。
private static final DateTimeFormatter TODAY_FORMATTER
= DateTimeFormatter.ofPattern("'Today,' HH:mm", Locale.ENGLISH);
private static final DateTimeFormatter ANOTHER_DAY_FORMATTER
= DateTimeFormatter.ofPattern("dd.MM.yyyy, HH:mm", Locale.ENGLISH);
要尝试使用不同的日期和时间:
LocalDateTime[] dateTimes = {
LocalDateTime.of(2021, Month.DECEMBER, 7, 23, 45),
LocalDateTime.of(2021, Month.DECEMBER, 8, 12, 34),
LocalDateTime.of(2021, Month.DECEMBER, 9, 04, 23)
};
LocalDate today = LocalDate.now(ZoneId.systemDefault());
for (LocalDateTime ldt : dateTimes) {
String formattedDateTime;
if (ldt.toLocalDate().isEqual(today)) {
formattedDateTime = ldt.format(TODAY_FORMATTER);
}
else {
formattedDateTime = ldt.format(ANOTHER_DAY_FORMATTER);
}
System.out.println(formattedDateTime);
}
当我今天 运行(我所在时区的 12 月 8 日)时,我得到:
07.12.2021, 23:45
Today, 12:34
09.12.2021, 04:23
如果你坚持老套,我相信同样的技巧也适用于SimpleDateFormat
。您当然会有一项非常重要的任务,即确定日期是否是今天。
我想使用 SimpleDateFormat 按以下格式编写今天的日期:
今天,13:14
在其他日子,我想将其打印为日期和时间:
2021 年 12 月 6 日,12:59
我可以写前几天的日期和时间格式,但不能写白天的“今天 [HOUR]”格式。
textViewDate.setText(new SimpleDateFormat("dd.MM.yyyy HH:mm")
请指导。谢谢。
我不知道现有的日期格式可以满足您的要求。所以你必须自己做条件案例。
如果日期在“今天”范围内(但是您想要定义它,关于时区等),请使用“今天”格式生成文本。如果在外面,请使用通用格式。
如果你使用java +8,你可以使用Date/Time API (LocalDate) 来计算两个日期之间的差异,并检查它是否相同的日期,根据比较选择您的格式 Java Date Format
java.time
这需要两个格式化程序和一个 if
语句。
考虑使用 java.time,现代 Java 日期和时间 API,作为您的日期和时间工作。让我们先声明两个格式化程序。
private static final DateTimeFormatter TODAY_FORMATTER
= DateTimeFormatter.ofPattern("'Today,' HH:mm", Locale.ENGLISH);
private static final DateTimeFormatter ANOTHER_DAY_FORMATTER
= DateTimeFormatter.ofPattern("dd.MM.yyyy, HH:mm", Locale.ENGLISH);
要尝试使用不同的日期和时间:
LocalDateTime[] dateTimes = {
LocalDateTime.of(2021, Month.DECEMBER, 7, 23, 45),
LocalDateTime.of(2021, Month.DECEMBER, 8, 12, 34),
LocalDateTime.of(2021, Month.DECEMBER, 9, 04, 23)
};
LocalDate today = LocalDate.now(ZoneId.systemDefault());
for (LocalDateTime ldt : dateTimes) {
String formattedDateTime;
if (ldt.toLocalDate().isEqual(today)) {
formattedDateTime = ldt.format(TODAY_FORMATTER);
}
else {
formattedDateTime = ldt.format(ANOTHER_DAY_FORMATTER);
}
System.out.println(formattedDateTime);
}
当我今天 运行(我所在时区的 12 月 8 日)时,我得到:
07.12.2021, 23:45 Today, 12:34 09.12.2021, 04:23
如果你坚持老套,我相信同样的技巧也适用于SimpleDateFormat
。您当然会有一项非常重要的任务,即确定日期是否是今天。