Java 获取SimpleDataFormat返回错误答案
我需要将时间戳字符串转换为long。Java 获取SimpleDataFormat返回错误答案,java,timestamp,simpledateformat,Java,Timestamp,Simpledateformat,我需要将时间戳字符串转换为long。 这是我的输入字符串: 2016-08-10T11:24:57.182+0300 下面是我试图用于转换的代码: SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss.sssZ"); try { Date date = simpleDateFormat.parse(timestamp);
这是我的输入字符串:
2016-08-10T11:24:57.182+0300
下面是我试图用于转换的代码:
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss.sssZ");
try {
Date date = simpleDateFormat.parse(timestamp);
long time = date.getTime();
} catch (ParseException e) {
e.printStackTrace();
}
结果:1470817622000
但当我检查这么长时间后,它会返回以下字符串:
10 august 2016 8:27:02 GMT
但这与输入字符串不同。知道为什么会发生这种情况以及如何解决吗?与输入字符串不同的意思是什么?您的输入是GMT+0300。您使用的java版本是什么?
Z
仅受java-7以上版本的支持@KevinEsche表示我们也可以在Java 6中使用Z。@安德烈·安东诺夫:您得到了正确的输出2016年8月10日8:27:02 GMT~=2016-08-10T11:24:57.182+0300(我使用了等效符号,因为有几分钟的差异)@Unknown,是的,看起来像。但是我需要根据时区转换时间。你说的与输入字符串不同是什么意思?您的输入是GMT+0300。您使用的java版本是什么?Z
仅受java-7以上版本的支持@KevinEsche表示我们也可以在Java 6中使用Z。@安德烈·安东诺夫:您得到了正确的输出2016年8月10日8:27:02 GMT~=2016-08-10T11:24:57.182+0300(我使用了等效符号,因为有几分钟的差异)@Unknown,是的,看起来像。但我需要根据时区转换时间