I want to convert a string to date format in java 6(我想在Java 6中将字符串转换为日期格式)
本文介绍了我想在Java 6中将字符串转换为日期格式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的输入如下:
20180718140032488266000Z-0600
它在数据库中的持久化应该是这样的:
21-JUL-18 12.05.25.000000000 AM
目前我编写的代码如下:
public static void main(String[] argv) throws ParseException {
// SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmssSSSZ");
String dateInString = "20180718140032488266000Z-0600";
Timestamp ts = formatDate(dateInString);
System.out.println(ts);
}
private static Timestamp formatDate(String dateString) throws ParseException {
// dateString = dateString.replaceAll("Z", "0000");
SimpleDateFormat fmtTimestamp = new SimpleDateFormat("yyyyMMddHHmmssSSS'Z'");
Date dtTimestamp1 = fmtTimestamp.parse(dateString);
Timestamp timestamp = new java.sql.Timestamp(dtTimestamp1.getTime());
return timestamp;
}
我得到了以下格式的输出:2018-07-24 05:38:18.0
,我的问题是如何才能将AM/PM也包含在输出中。请提出解决方案。我会非常感激的。
推荐答案
我的问题是如何才能使AM/PM也出现在输出中
好吧,Java 6已经很老了。但您需要检查SimpleDateFromat的文档,您将看到字母a
是针对上午/下午Maker:
a Am/pm marker Text PM
您的格式为21-JUL-18 12.05.25.000000000 AM
,因此在最后添加此内容时,您需要创建一个新的SimpleDateFormat
public static void main(String args[]) throws IOException, ParseException {
String dateInString = "20180718140032488266000Z-0600";
Timestamp ts = formatDate(dateInString);
System.out.println(ts);
SimpleDateFormat fmtTimestamp = new SimpleDateFormat("dd-MMM-YY hh.mm.s.SSSSS a");
System.out.println(fmtTimestamp.format(ts));
}
有了这个,你会得到这个...但对于这个问题,还有更好的解决方案。比如升级到Java的新版本。我的拙见。
这篇关于我想在Java 6中将字符串转换为日期格式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:我想在Java 6中将字符串转换为日期格式
基础教程推荐
猜你喜欢
- Spring Boot Freemarker从2.2.0升级失败 2022-01-01
- 如何对 HashSet 进行排序? 2022-01-01
- 如何使用 Eclipse 检查调试符号状态? 2022-01-01
- Java 中保存最后 N 个元素的大小受限队列 2022-01-01
- 在螺旋中写一个字符串 2022-01-01
- 如何使用 Stream 在集合中拆分奇数和偶数以及两者的总和 2022-01-01
- 首次使用 Hadoop,MapReduce Job 不运行 Reduce Phase 2022-01-01
- 如何在不安装整个 WTP 包的情况下将 Tomcat 8 添加到 Eclipse Kepler 2022-01-01
- 由于对所需库 rt.jar 的限制,对类的访问限制? 2022-01-01
- 如何强制对超级方法进行多态调用? 2022-01-01