java - 如何将 LocalDate 格式更改为 LocalDate 而不会导致 String
问题描述
在需要将 JavaLocalDate
的格式dd-MM-yyyy
转换LocalDate
为dd/MM/yyyy
.
尝试:
DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("dd/MM/yyyy");
LocalDate date = // LocalDate value in dd-MM-yyyy format
String stringDate = dateFormat.format(date);
LocalDate convertedDate = LocalDate.parse(stringDate, dateFormat);
但它仍然导致返回dd-MM-yyyy
格式的日期。有什么有效的方法来做到这一点?
解决方案
LocalDate.java 中的默认 toString 实现似乎是用“-”作为分隔符硬连线的。所以所有默认的打印语句都会产生相同的格式。似乎唯一的出路是使用格式化程序并获得字符串输出。
return buf.append(monthValue < 10 ? "-0" : "-")
.append(monthValue)
.append(dayValue < 10 ? "-0" : "-")
.append(dayValue)
.toString();
此外, LocalDate.parse(..) 的目的不是转换日期格式。它实际上只是在 String 中获取一个日期值并给出一个结果 LocalDate 实例。
希望这可以帮助。
推荐阅读
- amazon-dynamodb - 按 ID 获取项目不适用于 DynamoDB
- python - Fastai - 如何在 cpu 中使用 load_learner 后进行预测
- python-3.x - 在文本文件中搜索项目
- android - 我的函数 onNewToken 从未被调用是否正常?
- authentication - 为什么我们在 Header 上传递身份验证令牌?
- ios - 如何将用户添加到 AWS Cognito 用户池组?
- javascript - 为什么这个控制台记录 0?
- python - k 将 Django 应用程序部署到 Digital Ocean - 创建 virtualenv 时出现路径错误
- swift - uiview 约束不起作用
- flutter - 在综合浏览量项目中使用全局键的问题