1 22 23 package org.xquark.schema.datatypes; 24 25 import java.text.SimpleDateFormat ; 26 27 import org.apache.xerces.impl.xpath.regex.RegularExpression; 28 29 30 class DateTimeType extends AbstractDateTimeType { 31 private static final String RCSRevision = "$Revision: 1.1 $"; 32 private static final String RCSName = "$Name: $"; 33 34 private SimpleDateFormat format; 35 private RegularExpression regex; 36 37 DateTimeType() { 38 super("dateTime", PrimitiveType.DATE_TIME); 39 format = new SimpleDateFormat ("yyyy-MM-dd'T'HH:mm:ss"); 40 format.setLenient(false); 41 regex = new RegularExpression("(-)?([0-9]{4,}\\-[0-9]{2}\\-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\\.[0-9]{1,3})?)"+TIMEZONE_PATTERN, "X"); 42 } 43 44 protected SimpleDateFormat getDateTimeFormat() { 45 return format; 46 } 47 48 protected RegularExpression getRegularExpression() { 49 return regex; 50 } 51 52 protected boolean isTimeFormat() { 53 return true; 54 } 55 56 protected boolean isDateFormat() { 57 return true; 58 } 59 60 protected DateTime createDateTime(long millis, long tz, boolean tzSpecified) { 61 return new Value(millis, tz, tzSpecified); 62 } 63 64 class Value extends DateTime { 65 66 public Value(long millis, long tz, boolean tzSpecified) { 67 super(millis, tz, tzSpecified); 68 } 69 70 protected boolean checkClass(Object obj) { 71 return obj instanceof Value; 72 } 73 74 public String toString() { 75 return stringValue(this); 76 } 77 } 78 } 79 | Popular Tags |