我正在尝试用 Java 进行简单的字符串到日期的转换。我正在从一些日志中略读日期,需要将其转换为日期以进行一些处理。出现的日期将如下所示:
2012-09-07 19:53:33
在我的代码中,当我尝试将其转换为 Date 对象时,我得到了一个完全不同的日期。我的代码如下所示:
String taskStart = "2012-09-07 19:53:33";
String dateFormat = "yyyy-MM-dd hh:MM:ss";
SimpleDateFormat dateFormat=new SimpleDateFormat(format);
Date taskStartDate = dateFormat.parse(taskStart);
我得到的输出是这样的:
Sat May 07 19:00:27 PDT 2016
如何简单地将原始日期转换为正确的格式?
最佳答案
- 您已指定
MM
(一年中的一个月)两次。 “分钟”的 m 必须小写。 - 如果您采用 24 小时制时间,则需要指定
HH
为了捕获0-23
范围内指定的小时数,而不是hh
预计 AM/PM 小时(1-12
范围内的小时,其中 AM/PM 说明符作为时间字符串的一部分) - 最后,您的示例代码没有定义
format
您传递给SimpleDateFormat
的构造函数的变量目的。事实上,您使用的是变量名称dateFormat
两次并且没有定义format
完全可变 - 至少不是根据您在问题中包含的代码。
所以,我相信你正确的格式字符串应该是......
"yyyy-MM-dd HH:mm:ss"
...完整、正确的代码示例是:
String taskStart = "2012-09-07 19:53:33";
String format = "yyyy-MM-dd HH:mm:ss";
SimpleDateFormat dateFormat=new SimpleDateFormat(format);
Date taskStartDate = dateFormat.parse(taskStart);
关于java - 迄今为止的字符串格式不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12324663/