将字符串转换为GMT时区日期。JAVA
我正在从web上获取一个日期/时间字符串,格式为yyyy-mm-dd HH:mm:SS,并且是UTC格式 我必须创建一个日期对象并以GMT格式打印日期对象,但我不希望更改,例如,如果我将日期读取为2014-10-22 09:00:00,那么它应该显示为2014-10-22 09:00:00 GMT,而不是2014-10-22 13:30:00 我该怎么做?请推荐我 仅供参考,目前UTC时间为上午10:25,印度当前时间为下午3:55 我使用Jaxb解析器来解析XML。欢迎您提出任何建议您可以使用SimpleDataFormat解析日期,然后将其重新格式化为不同的时区将字符串转换为GMT时区日期。JAVA,java,datetime,Java,Datetime,我正在从web上获取一个日期/时间字符串,格式为yyyy-mm-dd HH:mm:SS,并且是UTC格式 我必须创建一个日期对象并以GMT格式打印日期对象,但我不希望更改,例如,如果我将日期读取为2014-10-22 09:00:00,那么它应该显示为2014-10-22 09:00:00 GMT,而不是2014-10-22 13:30:00 我该怎么做?请推荐我 仅供参考,目前UTC时间为上午10:25,印度当前时间为下午3:55 我使用Jaxb解析器来解析XML。欢迎您提出任何建议您可以使用
String toTimeZone = "GMT";
String fromTimeZone = "UTC";
String stingvalue = "2014-10-14 03:05:39";
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
dateFormat.setTimeZone(TimeZone.getTimeZone(fromTimeZone));
Date parsedDate = dateFormat.parse(stingvalue);
dateFormat.setTimeZone(TimeZone.getTimeZone(toTimeZone));
String newDate = dateFormat.format(parsedDate);
解释
Java类从1970年1月1日00:00:00.000 GMT开始以毫秒为单位计算时间。因此,您的日期与时区无关。要获取不同时区的日期,只需以不同的格式设置即可GMT不是一种格式,它实际上是一个时区。到目前为止,您描述的几乎是身份转换:公共静态字符串转换字符串文本{return text+GMT;}。。。在发布时,UTC时间大约是16:34,而不是10:25……可能的重复是我们有一个UI,我们将java.util.date变量传递给它。因此,我需要传递在GMT时区中创建的日期变量。我无法将字符串传递给UIS。在这种情况下,您只需按照所需格式创建SimpleDataFormat,设置时区并格式化日期。这应该能奏效。