无法将时间转换为 GMT

Posted

技术标签:

【中文标题】无法将时间转换为 GMT【英文标题】:Can't convert time to GMT 【发布时间】:2016-06-08 13:42:56 【问题描述】:

我的问题是我想将本地时间转换为GMT。我能够转换实际时间并将其保存到 Parse,但问题是 Parse 应用了自己的:

2016 年 2 月 24 日星期三 10:00:00 GMT+05:30

这是我转换为GMT00:00 后得到的日期,但问题是GMT+05:30 实际上是错误的,因为我的日期实际上在GMT 中。现在,当我将此日期放入服务器时,它会进一步将时间缩短 5:30 小时。那么我们怎样才能把这个GMT+05:30改成GMT+00:00

【问题讨论】:

请出示您的代码,看看您目前得到了什么 我认为这是此线程的副本:***.com/questions/2055407/… 您的输入和输出到底是什么?您是否需要某种格式的日期时间值的字符串表示形式?您需要某种类型的对象吗? 【参考方案1】:

如果您使用的是 java 8。您可以从新的时间库中使用。 正如您所说,您想要的似乎是在 UTC 中有一个印记,即 GMT+00

更多关于时间库here

这一行:

System.out.println(Instant.now().toString());

给了

2016-02-25T17:54:55.420Z

希望它能让你更清楚。

【讨论】:

不需要偏移量。 Instant 定义为 UTC。 Instant.now().toString()【参考方案2】:

我们将从当前的当地时间开始。

Calendar cal = Calendar.getInstance(); // automatically produces and instance of the current date/time

据我了解,您当地的日期准确到GMT,但您的时间比实际的GMT早5:30。

为了从您的本地时间减去 5:30,您可以执行以下操作。

cal.add(Calendar.HOUR, -5);
cal.add(Calendar.MINUTE, -30);

System.out.println(cal.getTime());

相反,如果您想添加到时间字段,您可以简单地使用:

cal.add(Calendar.HOUR, 5); // note I have removed the minus(-) symbol
cal.add(Calendar.MINUTE, 30); // note I have removed the minus(-) symbol

System.out.println(cal.getTime());

【讨论】:

以上是关于无法将时间转换为 GMT的主要内容,如果未能解决你的问题,请参考以下文章

如何在 GMT(格林威治)时间将 XMLGregorianCalendar 转换为 java.util.Date

将 GMT+# 格式的日期时间转换为 GMT

如何使用 JS 将 GMT 日期时间转换为 GMT Unix TimeStamp?

将本地时间转换为用户首选时区,将用户首选时区转换为 GMT

将 GMT 时间转换为特定的字符串格式 [重复]

将 GMT 时间对象转换为本地时间 iOS