java - 如何在 java 中从 10-JUN-02 01.57.07.848594000 PM 转换为 yyyy-MM-dd-HH24.MI.SS.FF6
问题描述
如何在 java 中从 10-JUN-02 01.57.07.848594000 PM 转换为 yyyy-MM-dd-HH24.MI.SS.FF6
解决方案
首先看一下
您的问题并不独特,也不是不常见的,在研究您的问题时进行一些尽职调查将获得更高的回报。
您的基本问题实际上是两个问题:
- 如何将 a 解析
String
为日期/时间对象 - 如何格式化日期/时间对象
我很欣赏在这个时代至少有 3 种不同的方法可以解决这些问题。但是,Java 8 中引入的日期/时间 API 应该是您的首选方法。
话虽如此,您可能会遇到两个主要的绊脚石来让某些东西发挥作用。
两者都与您的输入(JUN
和pm
)的不常见情况有关。
Java 8 引入了DateTimeFormatterBuilder
可以用来克服这个问题的类。
DateTimeFormatter dtf = new DateTimeFormatterBuilder()
.parseCaseInsensitive()
.appendPattern("dd-MMM-yy hh.mm.ss.SSSSSSSSS a")
.toFormatter(Locale.ENGLISH);
LocalDateTime ldt = LocalDateTime.parse("10-JUN-02 01.57.07.848594000 pm", dtf);
这将为您提供输入的日期/时间表示。
然后,您只需要另一个DateTimeFormatter
来根据需要格式化输出......
DateTimeFormatter output = DateTimeFormatter.ofPattern("yyyy-MM-dd-HH.mm.ss.SSSSSS", Locale.ENGLISH);
System.out.println(output.format(ldt));
哪个输出...
2002-06-10-13.57.07.848594
确保您已阅读JavaDocsDateTimeFormatter
以更好地理解格式化程序规范
推荐阅读
- typescript - 是否可以为具有可变深度的嵌套对象定义类型?
- visual-studio-code - VSCode 远程 SSH 到 Apple Silicon M1,在 i386 架构而不是 arm64 中具有终端
- python - 字符串 pandas python 的子字符串部分
- java - java spring 应用程序与 matlab 游乐场的集成
- oracle - 在 Oracle Active Data Guard 中创建用户
- r - 当多个矩阵中的值仅为 0 时,删除矩阵中的行/列
- reactjs - 有没有办法用 Reactjs 创建一个 Sendinblue 订阅表单?
- docker - 如何在 Kubernetes YAML 文件中使用 --tmpfs 挂载?
- java - 在其中一个代理启动后,kafka 生产者无法更新代理
- javascript - 无法修改更改本地存储中的邮政编码