Java SimpleDateFormat(“yyyy-MM-dd'T'HH:mm:ss'Z'”) 将时区命名为 IST

我有 SimpleDateFormat 构造函数作为

SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'")

我正在解析字符串"2013-09-29T18:46:19Z".

我读过,这里的Z代表时区。但是当我在控制台上打印此日期时,它会为返回的日期打印IST timezne。GMT/UTC

现在我的问题是我的输出是对还是错?


答案 1

您没有设置时区,只是在日期/时间的末尾添加了 a,因此它看起来像 GMT 日期/时间,但这不会更改值。Z

将时区设置为 GMT,它将是正确的。

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));

答案 2

'T'并在此处被视为常量。您需要在没有引号的情况下通过。此外,您需要在输入字符串中指定时区。'Z'Z

例 :格式为2013-09-29T18:46:19-0700"yyyy-MM-dd'T'HH:mm:ssZ"