java - 如何将日期从 (ddmmyyyy HH:mm:ss) 转换为 (yyyy-MM-dd HH:mm:ss.SSS)?)
问题描述
我正在尝试将日期从 (ddmmyyyy HH:mm:ss) 转换为 (yyyy-MM-dd HH:mm:ss.SSS) 格式。
下面是代码:
String startDate="06162019 00:00:00";
SimpleDateFormat inSDF = new SimpleDateFormat("ddmmyyyy HH:mm:ss");
SimpleDateFormat outSDF = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
try{
String outDate = "";
Date date = inSDF.parse(startDate);
System.out.println(date);
outDate = outSDF.format(date);
System.out.println(outDate);
}catch (final Exception e) {
e.getMessage();
}
但我得到错误的结果:
Sun Jan 06 00:00:00 GMT 2019
2019-01-06 00:00:00.000
任何帮助,将不胜感激?
解决方案
我假设您使用 Java 8 或更高版本。如果是这样,请放弃旧的和可怕java.util.Date
的,甚至更糟糕java.text.SimpleDateFormat
的是,它们已经死了并被埋葬了。切换到使用java.time
包。为了解决您的问题,您需要这样做:
String startDate="06162019 00:00:00";
DateTimeFormatter inSDF = DateTimeFormatter.ofPattern("MMddyyyy HH:mm:ss");
DateTimeFormatter outSDF = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS");
try{
System.out.println(outSDF.format(inSDF.parse(startDate)));
}catch (Exception e) {
e.getMessage();
}
2019-06-16 00:00:00.000
阅读有关DateTimeFormatter的信息。您也可能会发现这篇文章很有趣:Java 8 java.time package: parsing any string to date
推荐阅读
- javascript - jQuery 脚本在 IE 中无法正常工作
- c# - 使用 Bot Framework 4 的一对一主动消息传递
- c++ - 如何修复 DirectX9 中的纹理
- javascript - 在非结构化对象数组中查找不同键的数量
- angular - 如何在图片中获取数据
- java - 如何在 Month End 之后的 12-MARCH-2019 字符串中添加“\n”。我想要这个 12-MARCH\n-2019 in java
- phoenix - apache phoenix 本地索引在 upsert 后是否立即生效?
- c - STM32F3如何使用MODBUS TCP?
- java - 不同对象初始化的方法同步工作方式不同
- java - 重新分区后 Kafka 流不使用 serde