Java Date ISO Parse parseISO8601Date(String dateString)

Here you can find the source of parseISO8601Date(String dateString)

Description

Parses the ISO8601 date string.

License

Apache License

Parameter

Parameter Description
dateString the date string

Exception

Parameter Description
ParseException the parse exception

Return

the date

Declaration

public static Date parseISO8601Date(String dateString) throws ParseException 

Method Source Code

//package com.java2s;
/*******************************************************************************
 * Copyright 2012 Technology Blueprint Ltd
 * //from  w w  w .  j a v a  2  s .co  m
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 ******************************************************************************/

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Main {
    private static final String ISO8601_PATTERN = "yyyy-MM-dd'T'HH:mm:ss.SSSSSSSz";

    /**
     * Parses the ISO8601 date string.
     * 
     * @param dateString
     *            the date string
     * @return the date
     * @throws ParseException
     *             the parse exception
     */
    public static Date parseISO8601Date(String dateString) throws ParseException {
        if (!dateString.endsWith("Z")) {
            dateString += "Z";
        }
        SimpleDateFormat sdf = new SimpleDateFormat(ISO8601_PATTERN);
        dateString = dateString.replaceAll("(\\.[0-9]{3})[0-9]*(Z)", "$1$2");
        if (dateString.endsWith("Z")) {
            dateString = dateString.substring(0, dateString.length() - 1) + "GMT-00:00";
        } else {
            int inset = 6;
            String strPrefix = dateString.substring(0, dateString.length() - inset);
            String strSuffix = dateString.substring(dateString.length() - inset, dateString.length());
            dateString = strPrefix + "GMT" + strSuffix;
        }
        return sdf.parse(dateString);
    }
}

Related

  1. parseISO8601Date(final String dateString)
  2. parseISO8601Date(String date)
  3. parseISO8601Date(String dateStr)
  4. parseIso8601Date(String datestr)
  5. parseIso8601Date(String dateString)
  6. parseIso8601Date(String dateString)
  7. parseISO8601Date(String dateString)
  8. parseISO8601Date(String dateString)
  9. parseISO8601Date(String encoded, Date fallback)