Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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/sql-server-2008/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
Java日期时间格式转换_Java_Date_Timezone_Date Format_Simpledateformat - Fatal编程技术网

Java日期时间格式转换

Java日期时间格式转换,java,date,timezone,date-format,simpledateformat,Java,Date,Timezone,Date Format,Simpledateformat,我的问题是: String datetime = "2012-03-24 23:20:51"; 我知道该字符串位于UTC时区。 我需要将此字符串转换为格式“yyy-mm-dd'T'HH:mm:ssZ” 为此,我使用以下代码: SimpleDateFormat inFormatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); inFormatter.setTimeZone(TimeZone.getTimeZone("UTC"))

我的问题是:

String datetime = "2012-03-24 23:20:51";
我知道该字符串位于UTC时区。 我需要将此字符串转换为格式“yyy-mm-dd'T'HH:mm:ssZ”

为此,我使用以下代码:

    SimpleDateFormat inFormatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    inFormatter.setTimeZone(TimeZone.getTimeZone("UTC"));
    Date inDate = inFormatter.parse(datetime);
    SimpleDateFormat outFormatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
    outFormatter.setTimeZone(TimeZone.getTimeZone("UTC"));
    String output = outFormatter.format(inDate);
问题是,此代码在时区UTC+1的服务器上运行,它给我的结果是:

output = "2012-03-24T21:20:51+0000"
它将从初始时间减去2小时,并放置UTC时间戳(0000)

你能帮我解决这个问题吗?
谢谢。

如果输出格式为UTC+1,则应在输出格式中使用该格式,而不是UTC

outFormatter.setTimeZone(TimeZone.getTimeZone("UTC+01:00"));
此外,如果您不想在末尾添加+0000,请删除Z

SimpleDateFormat outFormatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");

我使用了一个服务器时区独立代码我不能让你的代码这么做。。。我有一个简短但完整的程序,基本上只有你的代码,它总是给我正确的价值。。。