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
Java SimpleDateFormat忽略了“;XXX“;如果时区设置为";UTC";_Java_Date_Datetime_Timezone_Utc - Fatal编程技术网

Java SimpleDateFormat忽略了“;XXX“;如果时区设置为";UTC";

Java SimpleDateFormat忽略了“;XXX“;如果时区设置为";UTC";,java,date,datetime,timezone,utc,Java,Date,Datetime,Timezone,Utc,我正在尝试以UTC格式输出当前日期时间,格式如下: 2016-01-11T14:08:42+00:00 final SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX"); formatter.setTimeZone(TimeZone.getTimeZone("UTC")); final String dateString = formatter.format(new Date()); “da

我正在尝试以UTC格式输出当前日期时间,格式如下: 2016-01-11T14:08:42+00:00

final SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX");
formatter.setTimeZone(TimeZone.getTimeZone("UTC"));

final String dateString = formatter.format(new Date());
“dateString”现在应该包含“2016-01-11T14:08:42+00:00”,但它包含“2016-01-11T14:08:42Z”

如果没有“UTC”时区设置,我会得到正确的格式,但是-当然-在我的特定时区

有什么想法吗?

请参阅以下文档:

对于格式化[使用ISO 8601时区],如果GMT的偏移值为0,则生成“Z”

因此,这种行为是意料之中的

您可以:

  • 使用RFC 822时区格式化程序
    ZZZ
    ;但是,这会产生“+0000”
  • 操纵字符串以替换最后的
    Z
    str.replaceAll(“Z$”,“+00:00”)

我认为我的方式完全是“错误的”方式。我会尽量使用“Z”作为标准。谢谢@我不认为你的方式一定是错的;我发现使用
Z
而不是
+00:00
是一种意想不到的行为。我确信这个决定背后有一个良好的意图,我只是不确定它可能是什么。但是,坚持使用
Z
可能更容易。@eventhorizon Z是UTC+00:00的符号,如ISO-8601-standard中的官方定义。可能字母Z最初来自美国军事用途(Z=Zulu)。