java - java - 如何在不使用字符串日期的情况下在java 8中将LocalDate从一种格式转换为另一种LocalDate格式?
问题描述
LocalDate date = LocalDate.now();
System.out.println("date :" + date );//default format is yyyy-MM-dd
System.out.println(date.getClass().getName());//java.time.LocalDate
如何用格式格式化上面date
的LocalDate
类型
dd-MM-yyyy
。但是您可以使用字符串日期模式,即dd-MM-yyyy
。输出应该只是LocalDate
类型。
解决方案
此功能不是类的责任,LocalDate
该类是表示日期的不可变日期时间对象。它的职责是不关心字符串格式表示。
要生成或解析字符串,请使用DateTimeFormatter
该类。
DateTimeFormatter pattern = DateTimeFormatter.ofPattern("dd-MM-yyyy");
String string = date.format(pattern);
回到LocalDate
,使用相同的模式:
LocalDate dateParsed = LocalDate.parse(string, pattern);
但是 newdateParsed
将再次转换为其默认的 String 表示,因为LocalDate
overridestoString()
方法。这是文档中的内容:
输出将采用 ISO-8601 格式 uuuu-MM-dd。
您可能希望实现自己的此类处理格式的装饰器。
推荐阅读
- python - 如何在 matplotlib.figure.Figure 中自定义我的图形图形,例如更改标记大小?
- java - 从性能的角度来看,使用 spring rest api 从服务器读取更大的文件
- java - 使用 RestEasy 处理没有“根”元素的 JSON 响应
- c - C - 迭代给定的 json 对象数组
- excel - 如何以不重复的随机顺序生成名称列表?
- javascript - 从浏览器打开以太坊钱包应用程序
- javascript - 我是流的新手,我需要从 ftp 下载文件并作为流发送到 azure stageblock(npm @azure/storage-blob)
- python - 从列中的日期时间对象创建范围
- angular - 子组件事件发射器未在父组件中触发
- kotlin - 简单的强化学习示例