Class Date
java.lang.Object
org.exolab.castor.types.DateTimeBase
org.exolab.castor.types.Date
- All Implemented Interfaces:
Serializable, Cloneable
Describe an XML Schema Date.
The format is defined by W3C XML Schema Recommendation and ISO8601 i.e (-)CCYY-MM-DD(Z|(+|-)hh:mm)
- Version:
- $Revision: 7289 $
- Author:
- Arnaud Blandin, Edward Kuns
- See Also:
-
Field Summary
Fields inherited from class DateTimeBase
EQUALS, GREATER_THAN, INDETERMINATE, LESS_THAN, MAX_TIME_ZONE_COMPARISON_OFFSET, WRONGLY_PLACEDModifier and TypeFieldDescriptionstatic final intPublic constant referring to a Date/Time comparison result of "equals".static final intPublic constant referring to a Date/Time comparison result of "greater than".static final intPublic constant referring to an indeterminate Date/Time comparison.static final intPublic constant referring to a Date/Time comparison result of "less than".protected static final intWhen comparing a date/time with a time zone to one without, the recommendation says that 14 hours is the time zone offset to use for comparison.protected static final StringConvenience String for complaints. -
Constructor Summary
ConstructorsConstructorDescriptionDate()No-arg constructor.Date(long dateAsLong) This constructor is used to convert a long value representing a Date to a new org.exolab.castor.types.Date instance.Date(short[] values) Constructs a XML Schema Date instance given all the values of the different fields.Constructs a date from a string.This constructor is used to convert a java.util.Date into a new org.exolab.castor.types.Date. -
Method Summary
Modifier and TypeMethodDescriptionshortgetHour()shortgetMilli()shortshortshort[]Returns an array of short with all the fields that describe this Date type.booleanhasHour()//////////////////////// DISALLOWED METHODS ///////////////////////////booleanhasMilli()booleanbooleanstatic Objectparse a String and convert it into an java.lang.Objectstatic Dateparse a String and convert it into a Date.voidsetHour(short hour) Sets the hour field for this date/time type.voidsetMilliSecond(short millisecond) Sets the millisecond field for this date/time type.voidsetMinute(short minute) set the minute field for this date/time type.voidsetSecond(short second) Sets the seconds field for this date/time type, not including the fractional seconds.voidsetValues(short[] values) Sets all the fields by reading the values in an array.toDate()Converts this Date into a local java.util.Date.longtoLong()Converts this date into a long value.toString()convert this Date to a string The format is defined by W3C XML Schema recommendation and ISO8601 i.e (+|-)CCYY-MM-DDMethods inherited from class DateTimeBase
addDuration, appendDateString, appendTimeString, appendTimeZoneString, clone, compareTo, equal, equals, getCentury, getDay, getMonth, getYear, getZoneHour, getZoneMinute, hasCentury, hasDay, hashCode, hasIsNegative, hasMonth, hasYear, isLeap, isNegative, isUTC, isZoneNegative, normalize, parseDay, parseMonth, parseTime, parseTimeZone, parseYear, setCentury, setDateFormatTimeZone, setDateFormatTimeZone, setDay, setMonth, setNegative, setSecond, setUTC, setYear, setZone, setZoneHour, setZoneMinute, setZoneNegative, toCalendarModifier and TypeMethodDescriptionvoidaddDuration(Duration duration) Adds a Duration to this Date/Time type as defined in Adding Duration to dateTimes (W3C XML Schema, part 2 appendix E). This version uses the algorithm defined in the document from W3C.protected voidappendDateString(StringBuffer result) protected voidappendTimeString(StringBuffer result) protected voidappendTimeZoneString(StringBuffer result) clone(DateTimeBase dateTime) intcompareTo(DateTimeBase dateTime) Compares two date/time data types.protected booleanequal(DateTimeBase dateTime) Returns true if the present instance of date/time type is equal to the parameter.booleanOverrides the java.lang.Object#equals method.shortshortgetDay()shortgetMonth()shortgetYear()shortshortbooleanbooleanhasDay()inthashCode()Overrides the java.lang.Object#hashcode method.boolean/////////////////////Getter methods//////////////////////////////////////booleanhasMonth()booleanhasYear()final booleanisLeap(int year) Returns true if the given year represents a leap year.boolean/////////////////////Getter methods//////////////////////////////////////booleanisUTC()Returns true if this date/time type is UTC, that is, has a time zone assigned.booleanvoidNormalizes a date/time datatype as defined in W3C XML Schema Recommendation document: if a timeZone is present but it is not Z then we convert the date/time datatype to Z using the addition operation defined in Adding Duration to dateTimes (W3C XML Schema, part 2 appendix E).protected static intparseDay(String str, DateTimeBase result, char[] chars, int index, String complaint) protected static intparseMonth(String str, DateTimeBase result, char[] chars, int index, String complaint) protected static intparseTime(String str, DateTimeBase result, char[] chars, int index, String complaint) protected static intparseTimeZone(String str, DateTimeBase result, char[] chars, int index, String complaint) protected static intparseYear(String str, DateTimeBase result, char[] chars, int index, String complaint) /////////// COMMON CODE USED BY EXTENDING CLASSES ///////////////////////voidsetCentury(short century) Set the century field.protected voidSets the time zone in the provided DateFormat.protected voidsetDateFormatTimeZone(Calendar calendar) Sets the time zone in the provided Calendar.voidsetDay(short day) Sets the Day Field.voidsetMonth(short month) Sets the Month Field.voidSet the negative field to true.voidsetSecond(short second, short millsecond) Sets the seconds field for this date/time type, including fractional seconds.voidsetUTC()Sets the UTC field.voidsetYear(short year) Sets the Year field.voidsetZone(short hour, short minute) Sets the time zone fields for this date/time type.voidsetZoneHour(short hour) Sets the time zone hour field for this date/time type.voidsetZoneMinute(short minute) Sets the time zone minute field for this date/time type.voidsetZoneNegative(boolean zoneNegative) Sets the time zone negative field to true.converts this Date/Time into a local java Calendar.
-
Constructor Details
-
Date
public Date()No-arg constructor. -
Date
public Date(short[] values) Constructs a XML Schema Date instance given all the values of the different fields. By default a Date is not UTC and is local.- Parameters:
values- an array of shorts that represent the different fields of Time.
-
Date
public Date(long dateAsLong) This constructor is used to convert a long value representing a Date to a new org.exolab.castor.types.Date instance.Note : all the information concerning the time part of the java.util.Date is lost since a W3C Schema Date only represents CCYY-MM-YY
- Parameters:
dateAsLong- Date represented in from of a long value.
-
Date
This constructor is used to convert a java.util.Date into a new org.exolab.castor.types.Date.Note : all the information concerning the time part of the java.util.Date is lost since a W3C Schema Date only represents CCYY-MM-YY.
- Parameters:
dateRef- the java.util.Date to use to construct a new org.exolab.castor.types.Date
-
Date
Constructs a date from a string.- Parameters:
date- the string representing the date- Throws:
ParseException- a parse exception is thrown if the string to parse does not follow the right format (see the description of this class)
-
-
Method Details
-
setValues
public void setValues(short[] values) Sets all the fields by reading the values in an array.If a Time Zone is specified, it has to be set by using
setZone.- Specified by:
setValuesin classDateTimeBase- Parameters:
values- an array of shorts with the values the array is supposed to be of length 4 and ordered like the following:- century
- year
- month
- day
-
getValues
public short[] getValues()Returns an array of short with all the fields that describe this Date type.Note:the time zone is not included.
- Specified by:
getValuesin classDateTimeBase- Returns:
- an array of short with all the fields that describe this Date type.
-
toDate
Converts this Date into a local java.util.Date.- Specified by:
toDatein classDateTimeBase- Returns:
- a local date representing this Date.
-
toLong
public long toLong()Converts this date into a long value.- Returns:
- This date instance as a long value.
-
toString
-
parse
parse a String and convert it into an java.lang.Object- Parameters:
str- the string to parse- Returns:
- an Object represented by the string
- Throws:
ParseException- a parse exception is thrown if the string to parse does not follow the right format (see the description of this class)
-
parseDate
parse a String and convert it into a Date.- Parameters:
str- the string to parse- Returns:
- the Date represented by the string
- Throws:
ParseException- a parse exception is thrown if the string to parse does not follow the right format (see the description of this class)
-
hasHour
public boolean hasHour()//////////////////////// DISALLOWED METHODS ///////////////////////////- Overrides:
hasHourin classDateTimeBase
-
getHour
public short getHour()- Overrides:
getHourin classDateTimeBase
-
setHour
public void setHour(short hour) Description copied from class:DateTimeBaseSets the hour field for this date/time type.- Overrides:
setHourin classDateTimeBase- Parameters:
hour- the hour to set
-
hasMinute
public boolean hasMinute()- Overrides:
hasMinutein classDateTimeBase
-
getMinute
public short getMinute()- Overrides:
getMinutein classDateTimeBase
-
setMinute
public void setMinute(short minute) Description copied from class:DateTimeBaseset the minute field for this date/time type.- Overrides:
setMinutein classDateTimeBase- Parameters:
minute- the minute to set.
-
hasSeconds
public boolean hasSeconds()- Overrides:
hasSecondsin classDateTimeBase
-
getSeconds
public short getSeconds()- Overrides:
getSecondsin classDateTimeBase
-
setSecond
public void setSecond(short second) Description copied from class:DateTimeBaseSets the seconds field for this date/time type, not including the fractional seconds. Any fractional seconds previously set is unmodified.- Overrides:
setSecondin classDateTimeBase- Parameters:
second- the second to set
-
hasMilli
public boolean hasMilli()- Overrides:
hasMilliin classDateTimeBase
-
getMilli
public short getMilli()- Overrides:
getMilliin classDateTimeBase
-
setMilliSecond
public void setMilliSecond(short millisecond) Description copied from class:DateTimeBaseSets the millisecond field for this date/time type.- Overrides:
setMilliSecondin classDateTimeBase- Parameters:
millisecond- the millisecond to set
-