java 解析日期 t z_Java SimpleDateFormat(“yyyy-MM-dd'T'HH:mm:ss'Z'”)给出时区为IST...

博客讨论了Java中SimpleDateFormat在解析'yyyy-MM-dd'T'HH:mm:ss'Z''格式的ISO 8601日期字符串时出现的时区问题。虽然'Z'通常代表UTC,但不设置时区会导致日期打印为本地时区。正确做法是设置时区为GMT,例如通过`sdf.setTimeZone(TimeZone.getTimeZone("GMT"))`来确保正确解析和格式化日期。
摘要由CSDN通过智能技术生成

问题

我有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")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值