Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将字符串转换为GMT时区日期。JAVA_Java_Datetime - Fatal编程技术网

将字符串转换为GMT时区日期。JAVA

将字符串转换为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。欢迎您提出任何建议您可以使用

我正在从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解析日期,然后将其重新格式化为不同的时区

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,设置时区并格式化日期。这应该能奏效。