【发布时间】:2014-07-23 09:44:43
【问题描述】:
大家好,
我想知道如何将带有时区的日期(如2013-08-22T10:47:12+02:00)转换为另一个日期2013-08-22 10:47:12。
我尝试使用 SimpleDateFormat 对象来执行此操作,但我有同样的例外:
java.text.ParseException: Unparseable date: "2013-08-22T10:47:12+02:00"
你能帮帮我吗?谢谢
更新
我在这里显示我的失败代码:
String CURRENT_TIME_PATTERN ="yyyy-MM-dd'T'HH:mm:yyX";
String NEW_TIME_PATTERN ="yyyy-MM-dd HH:mm:ss";
String data="2013-08-22T10:47:12+02:00";
SimpleDateFormat sdf = new SimpleDateFormat(CURRENT_TIME_PATTERN);
SimpleDateFormat output = new SimpleDateFormat(NEW_TIME_PATTERN);
Date d = sdf.parse(data);
String formattedTime = output.format(d);
System.out.println(formattedTime);
通过这种方式,我将对无效参数“X”产生异常。
如果我使用这种模式String CURRENT_TIME_PATTERN ="yyyy-MM-dd'T'HH:mm:ss.SSS'Z'";,我会得到不可解析的日期异常。
【问题讨论】:
-
你用什么格式解析的?
-
所以你只想把 T 变成一个空格,然后把 + 开始的所有东西都去掉?
-
您应该遵循有关日期解析的教程。
-
这是我排除的格式:
yyyy-MM-dd'T'HH:mm:ssz这是我想转换日期的新格式yyyy-MM-dd HH:mm:ss -
由于您的输入格式是 ISO 8601 样式,请尝试使用
X(“ISO 8601 时区”)而不是z(“一般时区”)。
标签: java date datetime simpledateformat