/* * 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 Number}. The number is normally a long value of the number of * milliseconds since January 1, 1970, 00:00:00 GMT as in {@link java.util.Date#getTime()} */ public class NumberDateConverter extends AbstractDateConverter<Number> { /** * Creates a DateConverter. */ public NumberDateConverter() { } /** * Converts from a String to a Number which is normally a long value of the number of milliseconds since January 1, * 1970, 00:00:00 GMT as in {@link java.util.Date#getTime()}. 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 Number fromString(String string, ConverterContext context) { Object date = super.fromStringToDate(string, context); if (date instanceof Date) { return ((Date) date).getTime(); } else { return null; } } @Override public String toString(Number value, ConverterContext context) { return super.anyDateToString(value, context); } }