偏移量为25的无法解释的日期

时间:2013-05-23 21:19:40

标签: java date-format parseexception

我无法解决问题。我正在尝试将日期字符串2013-05-23T19:00:00GMT-00解析为标准格式yyyy-MM-dd'T'HH:mm:ssz,但我总是在位置25处得到ParseException。

    // Get a human readable format.
    DateFormat dateFormat = DateTime.getStandardFormat();

    // Subtract a full hour from the time passed in.
    final int HOUR_IN_MINUTES = 3600;
    DateTime dateTimeLess1Hour = aDateTime.minus(HOUR_IN_MINUTES, 0);

    // Convert the DateTime, less exactly one hour, to a string.
    String timeLess1String = dateFormat.format(DateTime.toDate(dateTimeLess1Hour));

    // Split the string to distinguish the time part
    String date = timeLess1String.substring(0, 10);
    String time = timeLess1String.substring(11);

    String[] hhMMss = time.split(":");

    String hourOnHourDate = date + "T" + hhMMss[0] + ":00:00" + hhMMss[2].substring(2);

    Date inDateFormat = null;

    // Convert the string into a Date object
    inDateFormat = dateFormat.parse(hourOnHourDate);

    // Convert the Date into a DateTime object.
    return new DateTime(inDateFormat);

错误消息显示Unparseable date:2013-05-23T19:00:00GMT-00

1 个答案:

答案 0 :(得分:0)

位置25表示GMT部分的开头,它是您尝试使用字母z进行解析的部分。如果您确定您的时区始终为GMT,那么您可以将其作为固定字符串,如下所示:

yyyy-MM-dd'T'HH:mm:ss'GMT'

如果输入时区不时有所不同,请将其分开。

String zone = inputTime.substring(startPosition, endPosition);

使用zone字符串

将时区设置在单独的行中