我将SimpleDateFormat构造函数作为

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

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

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

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

推荐答案

你没有设置时区,只是在日期/时间的末尾加了一个Z,所以它看起来像GMT日期/时间,但这不会改变值.

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

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

Java相关问答推荐

如何跟踪我在数组中的位置

更新我们的一个文物后出现了严重的符号引用错误

将成为一个比较者.比较…在现代Java中,编译器会对`CompareTo`方法进行优化吗?

CAMEL 4中的SAXParseException

Java inline Double条件和值解装箱崩溃

RESTful框架类字段是安全的还是不安全的

基于调车场算法的科学计算器

GSON期间的Java类型擦除

为什么S的文档中说常量方法句柄不能在类的常量池中表示?

如何从错误通道回复网关,使其不会挂起

如何修复PDF重建过程中的文本定位

Spring Data JPA慢慢地创建了太多非活动会话

使用UTC时区将startDatetime转换为本地时间

在Java中将int[]矩阵添加到ArrayList中,但出现错误

在Spring Boot应用程序中,server.port=0的默认端口范围是多少?

从LineChart<;字符串、字符串和gt;中删除数据时出现特殊的ClassCastException;

Spring Validator批注不起作用

何时调用密封层次 struct 的switch 中的默认情况

在打开搜索结果时,如何让Eclipse打开整个文件?

不能在 map 上移除折线