Class GDate
- All Implemented Interfaces:
Serializable,GDateSpecification
public final class GDate extends Object implements GDateSpecification, Serializable
There are many date types in XML Schema, and this type represents the natural union of all those types. A GDate can hold any subset of date fields (Year, Month, Day, Time, Timezone, or some combination). Wherever the specification provides guidance, the guidelines in the XML Schema 1.0 specification (plus published errata) are followed.
Instances may separately have values or no values for the year, month, day-of-month, and time-of-day. Not all operations are meaningful on all combinations.
- See Also:
- Serialized Form
-
Field Summary
Fields inherited from interface org.apache.xmlbeans.GDateSpecification
HAS_DAY, HAS_MONTH, HAS_TIME, HAS_TIMEZONE, HAS_YEAR -
Constructor Summary
Constructors Constructor Description GDate(int year, int month, int day, int hour, int minute, int second, BigDecimal fraction)Constructs a GDate with the specified year, month, day, hours, minutes, seconds, and optional fractional seconds, in an unspecified timezone.GDate(int year, int month, int day, int hour, int minute, int second, BigDecimal fraction, int tzSign, int tzHour, int tzMinute)Constructs an absolute GDate with the specified year, month, day, hours, minutes, seconds, and optional fractional seconds, and in the timezone specified.GDate(CharSequence string)Constructs a GDate based on a lexical representation.GDate(Calendar calendar)Constructs a GDate based on a java.util.Calendar.GDate(Date date)Constructs a GDate based on a java.util.Date.GDate(GDateSpecification gdate)Constructs a GDate based on another GDateSpecification. -
Method Summary
Modifier and Type Method Description GDateadd(GDurationSpecification duration)Adds a duration to this GDate, and returns a new GDate.StringcanonicalString()The canonical string representation.intcompareToGDate(GDateSpecification datespec)Comparison to another GDate.booleanequals(Object obj)GDate is an immutable class, and equality is computed based on its canonical value.intgetBuiltinTypeCode()Returns the builtin type code for the shape of the information contained in this instance, or 0 if the instance doesn't contain information corresponding to a Schema type.XmlCalendargetCalendar()Retrieves the value of the current time as anXmlCalendar.DategetDate()Retrieves the value of the current time as a java.util.Date instance.intgetDay()Gets the day-of-month.intgetFlags()Returns a combination of flags indicating the information contained by this GDate.BigDecimalgetFraction()Gets the fraction-of-second.intgetHour()Gets the hour-of-day.intgetJulianDate()Returns the Julian date corresponding to this Gregorian date.intgetMillisecond()Gets the rounded millisecond value.intgetMinute()Gets the minute-of-hour.intgetMonth()Gets the month-of-year.intgetSecond()Gets the second-of-minute.intgetTimeZoneHour()Gets the time zone hour.intgetTimeZoneMinute()Gets the time zone minutes.intgetTimeZoneSign()Gets the time zone sign.intgetYear()Gets the year.booleanhasDate()True if this date/time specification specifies a full date (year, month, day)booleanhasDay()True if this date/time specification specifies a day-of-month.inthashCode()Returns a hash code for this GDate.booleanhasMonth()True if this date/time specification specifies a month-of-year.booleanhasTime()True if this date/time specification specifies a time-of-day.booleanhasTimeZone()True if this date/time specification specifies a timezone.booleanhasYear()True if this date/time specification specifies a year.booleanisImmutable()Returns true: all GDate instances are immutable.booleanisValid()True if this GDate corresponds to a valid gregorian date value in XML schema.GDatesubtract(GDurationSpecification duration)Adds a duration to this GDate, and returns a new GDate.StringtoString()The natural string representation.
-
Constructor Details
-
GDate
Constructs a GDate based on a lexical representation. -
GDate
Constructs a GDate with the specified year, month, day, hours, minutes, seconds, and optional fractional seconds, in an unspecified timezone.Note that by not specifying the timezone the GDate becomes partially unordered with respect to times that do have a specified timezone.
-
GDate
public GDate(int year, int month, int day, int hour, int minute, int second, BigDecimal fraction, int tzSign, int tzHour, int tzMinute)Constructs an absolute GDate with the specified year, month, day, hours, minutes, seconds, and optional fractional seconds, and in the timezone specified.If you wish to have a time or date that isn't in a specified timezone, then use the constructor that does not include the timezone arguments.
-
GDate
Constructs a GDate based on a java.util.Date.The current offset of the default timezone is used as the timezone.
For example, if eastern daylight time is in effect at the given date, the timezone on the east coast of the united states translates to GMT-05:00 (EST) + 1:00 (DT offset) == GMT-04:00.
-
GDate
Constructs a GDate based on a java.util.Calendar.If the calendar does not have some fields set, the same absence of information is reflected in the GDate. Note that java.util.GregorianCalendar fills in all fields as soon as any are fetched, so constructing a GDate with the same calendar object twice may result in a different GDate because of a changed calendar. Note that org.apache.xmlbeans.XmlCalendar is stable if you re-get a set field, so it does not have the same problem.
-
GDate
Constructs a GDate based on another GDateSpecification.
-
-
Method Details
-
isImmutable
public final boolean isImmutable()Returns true: all GDate instances are immutable.- Specified by:
isImmutablein interfaceGDateSpecification
-
getFlags
public int getFlags()Returns a combination of flags indicating the information contained by this GDate. The five flags are HAS_TIMEZONE, HAS_YEAR, HAS_MONTH, HAS_DAY, and HAS_TIME.- Specified by:
getFlagsin interfaceGDateSpecification
-
hasTimeZone
public final boolean hasTimeZone()True if this date/time specification specifies a timezone.- Specified by:
hasTimeZonein interfaceGDateSpecification
-
hasYear
public final boolean hasYear()True if this date/time specification specifies a year.- Specified by:
hasYearin interfaceGDateSpecification
-
hasMonth
public final boolean hasMonth()True if this date/time specification specifies a month-of-year.- Specified by:
hasMonthin interfaceGDateSpecification
-
hasDay
public final boolean hasDay()True if this date/time specification specifies a day-of-month.- Specified by:
hasDayin interfaceGDateSpecification
-
hasTime
public final boolean hasTime()True if this date/time specification specifies a time-of-day.- Specified by:
hasTimein interfaceGDateSpecification
-
hasDate
public final boolean hasDate()True if this date/time specification specifies a full date (year, month, day)- Specified by:
hasDatein interfaceGDateSpecification
-
getYear
public final int getYear()Gets the year. Should be a four-digit year specification.- Specified by:
getYearin interfaceGDateSpecification
-
getMonth
public final int getMonth()Gets the month-of-year. January is 1.- Specified by:
getMonthin interfaceGDateSpecification
-
getDay
public final int getDay()Gets the day-of-month. The first day of each month is 1.- Specified by:
getDayin interfaceGDateSpecification
-
getHour
public final int getHour()Gets the hour-of-day. Midnight is 0, and 11PM is 23.- Specified by:
getHourin interfaceGDateSpecification
-
getMinute
public final int getMinute()Gets the minute-of-hour. Range from 0 to 59.- Specified by:
getMinutein interfaceGDateSpecification
-
getSecond
public final int getSecond()Gets the second-of-minute. Range from 0 to 59.- Specified by:
getSecondin interfaceGDateSpecification
-
getFraction
Gets the fraction-of-second. Range from 0 (inclusive) to 1 (exclusive).- Specified by:
getFractionin interfaceGDateSpecification
-
getTimeZoneSign
public final int getTimeZoneSign()Gets the time zone sign. For time zones east of GMT, this is positive; for time zones west, this is negative.- Specified by:
getTimeZoneSignin interfaceGDateSpecification
-
getTimeZoneHour
public final int getTimeZoneHour()Gets the time zone hour.This is always positive: for the sign, look at getTimeZoneSign().
- Specified by:
getTimeZoneHourin interfaceGDateSpecification
-
getTimeZoneMinute
public final int getTimeZoneMinute()Gets the time zone minutes.This is always positive: for the sign, look at getTimeZoneSign().
- Specified by:
getTimeZoneMinutein interfaceGDateSpecification
-
getMillisecond
public int getMillisecond()Gets the rounded millisecond value. Range from 0 to 999- Specified by:
getMillisecondin interfaceGDateSpecification
-
canonicalString
The canonical string representation. Specific moments or times-of-day in a specified timezone are normalized to UTC time to produce a canonical string form for them. Other recurring time specifications keep their timezone information.- Specified by:
canonicalStringin interfaceGDateSpecification
-
isValid
public boolean isValid()True if this GDate corresponds to a valid gregorian date value in XML schema.- Specified by:
isValidin interfaceGDateSpecification
-
getJulianDate
public int getJulianDate()Returns the Julian date corresponding to this Gregorian date. The Julian date (JD) is a continuous count of days from 1 January 4713 BC.- Specified by:
getJulianDatein interfaceGDateSpecification
-
getCalendar
Retrieves the value of the current time as anXmlCalendar.XmlCalendaris a subclass ofGregorianCalendarwhich is slightly customized to match XML schema date rules.The returned
XmlCalendarhas only those time and date fields set that are reflected in the GDate object. Because of the way theCalendarcontract works, any information in the isSet() vanishes as soon as you view any unset field using get() methods. This means that if it is important to understand which date fields are set, you must call isSet() first before get().- Specified by:
getCalendarin interfaceGDateSpecification
-
getDate
Retrieves the value of the current time as a java.util.Date instance.- Specified by:
getDatein interfaceGDateSpecification
-
compareToGDate
Comparison to another GDate.- Returns -1 if this < date. (less-than)
- Returns 0 if this == date. (equal)
- Returns 1 if this > date. (greater-than)
- Returns 2 if this <> date. (incomparable)
- Specified by:
compareToGDatein interfaceGDateSpecification- Parameters:
datespec- the date to compare against.
-
getBuiltinTypeCode
public int getBuiltinTypeCode()Returns the builtin type code for the shape of the information contained in this instance, or 0 if the instance doesn't contain information corresponding to a Schema type.Value will be equal to
SchemaType.BTC_NOT_BUILTIN,SchemaType.BTC_G_YEAR,SchemaType.BTC_G_YEAR_MONTH,SchemaType.BTC_G_MONTH,SchemaType.BTC_G_MONTH_DAY,SchemaType.BTC_G_DAY,SchemaType.BTC_DATE,SchemaType.BTC_DATE_TIME, orSchemaType.BTC_TIME.- Specified by:
getBuiltinTypeCodein interfaceGDateSpecification
-
add
Adds a duration to this GDate, and returns a new GDate. -
subtract
Adds a duration to this GDate, and returns a new GDate. -
equals
GDate is an immutable class, and equality is computed based on its canonical value. -
hashCode
public int hashCode()Returns a hash code for this GDate. -
toString
The natural string representation. This represents the information that is available, including timezone. For types that correspond to defined schema types (schemaBuiltinTypeCode() > 0), this provides the natural lexical representation.When both time and timezone are specified, this string is not the canonical representation unless the timezone is UTC (Z) (since the same moment in time can be expressed in different timezones). To get a canonical string, use the canonicalString() method.
- Specified by:
toStringin interfaceGDateSpecification- Overrides:
toStringin classObject
-