/* * Copyright (c) 2002-2015, JIDE Software Inc. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this * particular file as subject to the "Classpath" exception as provided * by Oracle in the LICENSE file that accompanied this code. * * This code 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 General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. */ package jidefx.utils.converter; import java.util.Date; /** * {@link ObjectConverter} implementation for {@link Date}, {@link java.util.Calendar} or {@link Number}. All of aforementioned * data types can be accepted by the toString method. For the fromString method, it will only return {@link Date}. Its * subclasses might return Calendar or Number. */ public class DateConverter extends AbstractDateConverter<Date> { /** * Creates a DateConverter. */ public DateConverter() { } /** * Converts from a String to a Calendar. It will use the DateFormat defined as {@link #PROPERTY_DATE_FORMAT} if any. * Otherwise it will try different default DateFormat according to the context (Date, Time or DateTime). At last it * will try the following commonly used format patterns in order ("yyyy-mm-dd", "yy-mm-dd", "yyyymmdd", "yymmdd", * "dd-MMM-yy", "dd-MMM-yyyy") until it finds a match. We do that so that users could type in other date formats and * still could be recognized. * * @param string the string to be converted. * @param context the context. * @return the Calendar. If the string is null or empty, null will be returned. If the string cannot be parsed as a * date, the string itself will be returned. */ @Override public Date fromString(String string, ConverterContext context) { Object date = super.fromStringToDate(string, context); if (date instanceof Date) { return (Date) date; } else { return null; } } @Override public String toString(Date value, ConverterContext context) { return super.anyDateToString(value, context); } }