我遇到了一个常见问题,我想将String解析为Date。
字符串看起来像这个15.06.11 13:38:33 UTC
。但是当使用用于将String解析为Date的相同格式化器格式化时,结果为15.38.0011 13:38:33 UTC
。 TimeInMillis返回负值-61818978087000
。
SimpleDateFormat formatter = new SimpleDateFormat("dd.mm.yyyy HH:mm:ss z");
formatter.setLenient(false);
Date time = formatter.parse("15.06.11 13:38:33 UTC");
Calendar timestamp = Calendar.getInstance();
timestamp.setTime(time);
我感谢能得到的每一个帮助。也许我犯了一些愚蠢的错误,但我没有看到它。请睁开眼睛。
答案 0 :(得分:10)
月份为MM
,而非mm
(以分钟为单位)
和yyyy
到yy
(你的年份似乎是2位数)(感谢彼得注意到这一点)
答案 1 :(得分:3)
答案 2 :(得分:1)
您需要将月份更改为MM
,但也要将年份更改为yy
,否则使用yyyy
它会假设15.06.11
年份为11
2011
而不是System.out.println(new SimpleDateFormat("dd.MM.yy HH:mm:ss z")
.parse("15.06.11 13:38:33 UTC"));
Wed Jun 15 14:38:33 BST 2011
为我打印(因为我是GMT + 1)
{{1}}