转换日期从2013-08-22T10:47:12 + 02:00到2013-08-22 10:47:12

时间:2014-07-23 09:44:44

标签: java date datetime simpledateformat

Hy guys,

我想知道如何将时区转换为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'";,我将获得不可解析的日期例外。

3 个答案:

答案 0 :(得分:0)

我建议使用Joda-Time进行任何日期和时间格式化/解析。

使用以下导入:

import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;

以下代码:

String input = "2013-08-22T10:47:12+02:00";
DateTimeFormatter formatterA = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ssZ");
DateTimeFormatter formatterB = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
DateTime dateTime = formatterA.parseDateTime(input);
String output = dateTime.toString(formatterB);

答案 1 :(得分:0)

如果T

中始终有String,请尝试此操作
    String s = "2013-08-22T10:47:12+02:00";
    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:yyX"); // here X is for ISO 8601 time zone
    Date parseDate = formatter.parse(s);
    formatter.applyPattern("yyyy-MM-dd HH:mm:yy");
    String formattedStr = formatter.format(parseDate);
    System.out.println(formattedStr);

更新已移除String#replace()方法,并将格式化程序模式更改为"yyyy-MM-dd'T'HH:mm:yyX"

答案 2 :(得分:0)

试试这个..

        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX");
        String date = "2013-08-22T10:47:12+02:00";
        Date date1 = dateFormat.parse(date);
        SimpleDateFormat dateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String myDate = dateFormat1.format(date1);
        System.out.println("Date :: " + myDate);
相关问题