问题
我有SimpleDateFormat构造函数
SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'")
我正在解析string"2013-09-29T18:46:19Z".
我读过这里Z代表GMT/UTC时区。但是当我在控制台上打印这个日期时,它会为返回的日期打印IST timezne。
现在我的问题是我的输出是对还是错?
#1 热门回答(166 赞)
你尚未设置时区仅将aZ添加到日期/时间的末尾,因此它看起来像GMT日期/时间,但这不会更改该值。
将时区设置为GMT,这将是正确的。
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
#2 热门回答(68 赞)
'T'和3777823683在这里被视为常量。你需要传递Z而不用引号。此外,你需要在输入字符串中指定时区。
示例:2013-09-29T18:46:19-0700,格式为488352393
#3 热门回答(35 赞)
从ISO 8601字符串到Java日期对象
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
sdf.setTimeZone(TimeZone.getTimeZone("GMT")