Java Parse Date parseDate(Object o)

Here you can find the source of parseDate(Object o)

Description

parse Date

License

Open Source License

Declaration

public static Date parseDate(Object o) 

Method Source Code

//package com.java2s;
/*/*from w  w w.ja  va 2s .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.ParsePosition;
import java.text.SimpleDateFormat;

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

public class Main {
    public static final TimeZone GMT = TimeZone.getTimeZone("GMT");
    private static final SimpleDateFormat sdf = new SimpleDateFormat();
    /**
     * the date masks
     */
    private static final String[] DATE_MASKS = { "yyyy-MM-dd'T'HH:mm:ssz", "yyyy-MM-dd'T'HH:mm:ss'Z'", "yyyy-MM-dd",
            "yyyy" };

    public static Date parseDate(Object o) {
        synchronized (sdf) {
            sdf.setTimeZone(GMT);
            sdf.setLenient(true);
            if (o instanceof Date) {
                return (Date) o;
            } else if (o instanceof Long) {
                Long longvalue = (Long) o;
                String s = Long.toString(longvalue);
                sdf.applyPattern(DATE_MASKS[3]);
                Date d = sdf.parse(s, new ParsePosition(0));
                if (d != null) {
                    return d;
                }
            } else if (o instanceof String) {
                String value = (String) o;
                for (String DATE_MASK : DATE_MASKS) {
                    sdf.applyPattern(DATE_MASK);
                    Date d = sdf.parse(value, new ParsePosition(0));
                    if (d != null) {
                        return d;
                    }
                }
            }
            return null;
        }
    }
}

Related

  1. parseDate(final String str)
  2. parseDate(final String str, final Locale locale, final String... parsePatterns)
  3. parseDate(final String value)
  4. parseDate(Long date, String format)
  5. parseDate(Map obj, String field, String format)
  6. parseDate(Object str)
  7. parseDate(Object val)
  8. parseDate(SimpleDateFormat parser, String str, String[] parsePatterns)
  9. parseDate(String _dateString)