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 代表 GMT/UTC 时区。但是当我在控制台上打印这个日期时,它会为返回的日期打印 IST timezne。

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

原文由 Pradip Borde 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.3k
2 个回答

您尚未设置时区,仅在日期/时间末尾添加了 Z ,因此它看起来像 GMT 日期/时间,但这不会改变值。

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

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

原文由 Peter Lawrey 发布,翻译遵循 CC BY-SA 3.0 许可协议

'T''Z' 在这里被视为常量。您需要传递 Z 而不带引号。此外,您需要在输入字符串中指定时区。

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

原文由 Subir Kumar Sao 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题