1 /* 2 * Copyright 2001-2009 Stephen Colebourne 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 package org.joda.time.convert; 17 18 import java.util.Date; 19 20 import org.joda.time.Chronology; 21 22 /** 23 * DateConverter converts a java util Date to an instant or partial. 24 * The Date is converted to milliseconds in the ISO chronology. 25 * 26 * @author Stephen Colebourne 27 * @since 1.0 28 */ 29 final class DateConverter extends AbstractConverter 30 implements InstantConverter, PartialConverter { 31 32 /** 33 * Singleton instance. 34 */ 35 static final DateConverter INSTANCE = new DateConverter(); 36 37 /** 38 * Restricted constructor. 39 */ 40 protected DateConverter() { 41 super(); 42 } 43 44 //----------------------------------------------------------------------- 45 /** 46 * Gets the millis, which is the Date millis value. 47 * 48 * @param object the Date to convert, must not be null 49 * @param chrono the non-null result of getChronology 50 * @return the millisecond value 51 * @throws NullPointerException if the object is null 52 * @throws ClassCastException if the object is an invalid type 53 */ 54 public long getInstantMillis(Object object, Chronology chrono) { 55 Date date = (Date) object; 56 return date.getTime(); 57 } 58 59 //----------------------------------------------------------------------- 60 /** 61 * Returns Date.class. 62 * 63 * @return Date.class 64 */ 65 public Class<?> getSupportedType() { 66 return Date.class; 67 } 68 69 }