Java解析字符串to Date返回错误的日期
我遇到了一个常见的问题,我想将字符串解析为日期 字符串如下所示Java解析字符串to Date返回错误的日期,java,Java,我遇到了一个常见的问题,我想将字符串解析为日期 字符串如下所示15.06.11 13:38:33 UTC。但当使用用于分析到目前为止字符串的相同格式设置程序进行格式化时,结果是15.38.0011 13:38:33 UTC。TimeInMillis返回负值-61818978087000 SimpleDateFormat formatter = new SimpleDateFormat("dd.mm.yyyy HH:mm:ss z"); formatter.setLenient(false);
15.06.11 13:38:33 UTC
。但当使用用于分析到目前为止字符串的相同格式设置程序进行格式化时,结果是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);
我感谢我能得到的每一个帮助。也许我犯了一些愚蠢的错误,但我看不出来。请睁开眼睛。月份是
MM
,而不是MM
(即分钟)和
yyy
到yy
(你的年份似乎是两位数)(感谢彼得注意到)月份是MM
,而不是MM
(即分钟)和
yyy
到yy
(你的年份看起来是两位数)(感谢彼得注意到这一点)成功吧
dd.MM.yyyy HH:mm:ss z
从 成功
dd.MM.yyyy HH:mm:ss z
从
您需要将月份更改为
MM
,但也需要将年份更改为yy
,否则使用yyy
将假定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"));
为我打印(因为我是GMT+1)
您需要将月份更改为
MM
,但也需要将年份更改为yy
,否则使用yyy
将假定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"));
为我打印(因为我是GMT+1)
我总是自己尝试代码。我已经被发现很多次,假设其余的代码是正确的我总是自己尝试代码。我已经被发现很多次,假设其余的代码是正确的