Java DateTimeFormatter详解与时间格式化示例

版权申诉
3 下载量 4 浏览量 更新于2024-09-11 收藏 79KB PDF 举报
"Java使用DateTimeFormatter实现格式化时间,包括同年、不同年、同月、同年不同月、今天、明天、昨天以及一周内的各种显示方式。通过Scanner获取用户输入,利用DateTimeFormatter进行格式化,并输出到控制台。" 在Java编程中,日期和时间的处理是非常常见且重要的任务。`DateTimeFormatter` 是Java 8引入的`java.time.format.DateTimeFormatter` 类,用于格式化和解析日期、时间和日期时间。这个类提供了丰富的功能,可以根据不同的需求定制日期时间的展示格式。 在这个示例中,我们看到一个名为`DateTimeTest` 的测试类,它包含一个`main` 方法,该方法首先获取一个`Scanner` 对象用于从用户那里获取输入。用户输入的时间字符串被用来创建和格式化日期时间。程序提供了特定的提示语句,并允许用户通过输入预定义的退出指令来结束程序。 `DateTimeTool` 类(未在提供的代码中完整展示)很可能包含了`dateTimeFormatter` 方法,这个方法接收用户输入的字符串,然后使用`DateTimeFormatter` 进行格式化。根据描述,这个方法能够识别多种时间表示形式,并将其转换为企业微信聊天记录类似的展示格式: 1. **同年**:如果输入的时间与当前时间是同一年,会展示具体日期和时间。 2. **不同年**:不同年份则会显示完整的年份、月份和日期,以及时间。 3. **同月**:如果月份相同,只需显示月日和AM/PM以及时分。 4. **同年不同月**:同一年但不同月的情况下,仅显示月份、日和时分。 5. **今天**:如果是今天,只显示AM/PM和时分。 6. **明天**:如果是明天,会显示“明天”加上AM/PM和时分。 7. **昨天**:如果是昨天,会显示“昨天”加上AM/PM和时分。 8. **一周内**:如果在一周内,会显示星期、AM/PM和时分。 这个例子展示了如何结合`Scanner` 和`DateTimeFormatter` 来实现用户交互和日期时间的自定义格式化。`DateTimeFormatter` 的强大之处在于可以通过模板字符串来定义输出格式,例如“yyyy-MM-dd HH:mm”代表四位数的年、两位数的月、两位数的日期、24小时制的小时和分钟。 在实际应用中,你可以根据需要调整`DateTimeFormatter` 的模板,以满足各种日期时间格式的需求。例如,你可以使用`LocalDateTime.parse()` 和`LocalDateTime.format()` 方法将日期时间字符串解析为`LocalDateTime` 对象,然后再使用`DateTimeFormatter` 进行格式化。这种方法对于处理用户输入的日期时间数据或者展示日期时间信息非常有用。 `DateTimeFormatter` 是Java 8中处理日期时间格式化的核心工具,结合`Scanner` 可以创建用户友好的日期时间输入和输出系统。通过深入理解这个类以及其相关API,开发者可以更加灵活地处理日期和时间相关的业务逻辑。