Java Date ISO Parse parseDateISO(String value)

Here you can find the source of parseDateISO(String value)

Description

parse Date ISO

License

Open Source License

Declaration

public static Date parseDateISO(String value) 

Method Source Code


//package com.java2s;
/*//from w ww .  j a  va  2  s .c o m
 * Licensed to J?rg Prante and xbib under one or more contributor 
 * license agreements. See the NOTICE.txt file distributed with this work
 * for additional information regarding copyright ownership.
 *
 * Copyright (C) 2012 J?rg Prante and xbib
 * 
 * This program is free software; you can redistribute it and/or modify 
 * it under the terms of the GNU Affero General Public License as published 
 * by the Free Software Foundation; either version 3 of the License, or 
 * (at your option) any later version.
 * This program is distributed in the hope that it will be useful, 
 * but WITHOUT ANY WARRANTY; without even the implied warranty of 
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License 
 * along with this program; if not, see http://www.gnu.org/licenses 
 * or write to the Free Software Foundation, Inc., 51 Franklin Street, 
 * Fifth Floor, Boston, MA 02110-1301 USA.
 * 
 * The interactive user interfaces in modified source and object code 
 * versions of this program must display Appropriate Legal Notices, 
 * as required under Section 5 of the GNU Affero General Public License.
 * 
 * In accordance with Section 7(b) of the GNU Affero General Public 
 * License, these Appropriate Legal Notices must retain the display of the 
 * "Powered by xbib" logo. If the display of the logo is not reasonably 
 * feasible for technical reasons, the Appropriate Legal Notices must display
 * the words "Powered by xbib".
 */

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Date;
import java.util.TimeZone;

public class Main {
    public static final String ISO_FORMAT_SECONDS = "yyyy-MM-dd'T'HH:mm:ss'Z'";
    public static final String ISO_FORMAT_DAYS = "yyyy-MM-dd";
    public static final TimeZone GMT = TimeZone.getTimeZone("GMT");
    private static final SimpleDateFormat sdf = new SimpleDateFormat();

    public static Date parseDateISO(String value) {
        if (value == null) {
            return null;
        }
        synchronized (sdf) {
            sdf.applyPattern(ISO_FORMAT_SECONDS);
            sdf.setTimeZone(GMT);
            sdf.setLenient(true);
            try {
                return sdf.parse(value);
            } catch (ParseException pe) {
                // skip
            }
            sdf.applyPattern(ISO_FORMAT_DAYS);
            try {
                return sdf.parse(value);
            } catch (ParseException pe) {
                return null;
            }
        }
    }

    public static Date parseDateISO(String value, Date defaultDate) {
        if (value == null) {
            return defaultDate;
        }
        synchronized (sdf) {
            sdf.applyPattern(ISO_FORMAT_SECONDS);
            sdf.setTimeZone(GMT);
            sdf.setLenient(true);
            try {
                return sdf.parse(value);
            } catch (ParseException pe) {
                // skip
            }
            sdf.applyPattern(ISO_FORMAT_DAYS);
            try {
                return sdf.parse(value);
            } catch (ParseException pe) {
                return defaultDate;
            }
        }
    }
}

Related

  1. normalizeToISO8601(String sDate, TimeZone tz)
  2. parseAwsFlavouredISO8601Date(String dateString)
  3. parseDate(String iso8061StrDateTime)
  4. parseDateISO(String date)
  5. parseDateISO(String value)
  6. parseDateTime(String iso8061StrDateTime)
  7. parseFromIso8601(String s)
  8. parseISO(String aIsoString)
  9. parseISO(String input)