【发布时间】:2014-09-04 10:46:56
【问题描述】:
我正在尝试将具有一个时区(例如 IST)的日期(日期对象)转换为 GMT 日期。但我得到的日期确实改变了时间,但它显示的时区仍然是“IST”。我希望时区显示为“GMT”。
在尝试了几次转换后,我使用 Date 对象来获取最终日期,这给出了转换后的日期,但输出中的时区仍然是“IST”。
-
然后我尝试使用 DateTime 对象(Joda Time):
Date dateIndia = new Date(); DateTime dateTime = new DateTime(dateIndia); DateTimeZone timeZone = DateTimeZone.forID("GMT"); DateTime date_UtcGmt = dateTime.toDateTime(timeZone); System.out.println("dateIndia : " + dateIndia); System.out.println("dateTime : " + dateTime); System.out.println("date_UtcGmt : " + date_UtcGmt); System.out.println("date_UtcGmt.toDate : " + date_UtcGmt.toDate());
它向我显示以下输出:
dateIndia : Thu Sep 04 15:49:50 IST 2014
dateTime : 2014-09-04T15:49:50.152+05:30
date_UtcGmt : 2014-09-04T10:19:50.152Z
date_UtcGmt.toDate : Thu Sep 04 15:49:50 IST 2014
现在我有 GMT 格式的 date_UtcGmt,但是当我将它转换为日期时,它又是 IST 格式。我想要一个将 GMT 显示为其时区的日期对象。我可以更改 date_UtcGmt 对象的显示格式吗?我该怎么办?
【问题讨论】:
-
你看过
withZone方法吗? joda-time.sourceforge.net/apidocs/org/joda/time/… -
java.util.Date对象没有时区的概念,因此您不能将一个对象从一个时区转换到另一个时区。但是您可以在特定时区打印Date- 这是您想要的吗? -
您好,我需要一个 GMT 格式的“日期”对象。 withZone 给出的输出与以下内容相同: System.out.println("date_UtcGmt : " + date_UtcGmt);
-
嗨,邓肯,是的,在转换日期后,我希望在此处打印“GMT”而不是“IST”:“Thu Sep 04 15:49:50 IST 2014”。但我想要一个日期对象,因为我需要一个日期对象中的 GMT 时间才能进一步使用。
-
所以像这个问题应该有帮助(或重复?):How do I display a date with a custom timezone?