SimpleDateFormat 解析时忽略月份
以下代码给出的解析日期为“Wed Jan 13 00:00:00 EST 2010” 而不是“2010 年 6 月 13 日星期三 00:00:00 EST 2010”。任何想法都非常感激。
SimpleDateFormat sf = new SimpleDateFormat("yyyy-mm-dd'T'HH:mm:ss");
String str = "2010-06-13T00:00:00";
Date date = sf.parse(str);
System.out.println(" Date " + date.toString());
The following code is giving me the parsed date as "Wed Jan 13 00:00:00 EST 2010"
instead of "Wed Jun 13 00:00:00 EST 2010". Any ideas much appreciated.
SimpleDateFormat sf = new SimpleDateFormat("yyyy-mm-dd'T'HH:mm:ss");
String str = "2010-06-13T00:00:00";
Date date = sf.parse(str);
System.out.println(" Date " + date.toString());
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
尝试:
MM
表示月份。mm
表示分钟。请参阅SimpleDateFormat
< 的文档/a> 了解支持的日期和时间模式的更多详细信息。Try:
MM
means month.mm
means minutes. See the documentation forSimpleDateFormat
for more details of the supported date and time patterns.问题是您使用“mm”作为月份,“mm”代表分钟。
以下是所有可用的日期格式,请在此处阅读更多文档。
The problem is that you're using 'mm' as month and 'mm' represents minutes.
Below is all date formats available, read more doc here.
现代答案:
输出:
我正在使用并推荐
java.time
,现代 Java 日期和时间 API。我们甚至不需要显式的格式化程序来进行解析。这是因为您的字符串采用 ISO 8601 格式,这是 java.time 类默认解析的国际标准。java.time
于 2014 年问世。虽然在 2010 年提出这个问题时,
SimpleDateFormat
是我们用于解析日期和时间的类,但该类现在被认为早已过时了,幸运的是,因为这也很麻烦。如果您的字符串仅包含日期而没有一天中的时间,请以完全相同的方式使用
LocalDate
类(这是在重复的问题)。链接: Oracle 教程:日期时间 解释如何使用
java.time
。Modern answer:
Output:
I am using and recommending
java.time
, the modern Java date and time API. We don’t even need an explicit formatter for parsing. This is because your string is in ISO 8601 format, the international standard that thejava.time
classes parse as their default.java.time
came out in 2014.While in 2010 when this question was asked,
SimpleDateFormat
was what we had for parsing dates and times, that class is now considered long outdated, fortunately, because it was also troublesome.In case your string contained only a date without time of day, use the
LocalDate
class in quite the same manner (this was asked in a duplicate question).Link: Oracle tutorial: Date Time explaining how to use
java.time
.例如,如果日期是 06 07 2016,
您可以在这些格式之间使用逗号、句号、斜杠或连字符。
Example if Date is 06 07 2016
you can use comma, full-stop, slash, or hyphen between these format.