public final class TimeValue extends CalendarValue implements XPathComparable
Modifier and Type | Class and Description |
---|---|
static class |
TimeValue.TimeComparable |
MISSING_TIMEZONE, NO_TIMEZONE
typeLabel
Constructor and Description |
---|
TimeValue(byte hour,
byte minute,
byte second,
int microsecond,
int tz)
Deprecated.
since 10.0: use the constructor
TimeValue(byte, byte, byte, int, int, String)
that accepts nanosecond precision |
TimeValue(byte hour,
byte minute,
byte second,
int nanosecond,
int tz,
java.lang.String flag)
Private constructor to construct a time value given the hour, minute, second, and nanosecond components.
|
TimeValue(java.util.GregorianCalendar calendar,
int tz)
Constructor: create a time value given a Java calendar object
|
Modifier and Type | Method and Description |
---|---|
TimeValue |
add(DurationValue duration)
Add a duration to a dateTime
|
TimeValue |
adjustTimezone(int timezone)
Return a new time with the same normalized value, but
in a different timezone.
|
int |
compareTo(CalendarValue other,
int implicitTimezone)
Compare the value to another dateTime value
|
int |
compareTo(XPathComparable other)
Compare the value to another dateTime value
|
AtomicValue |
copyAsSubType(AtomicType typeLabel)
Make a copy of this time value,
but with a different type label
|
boolean |
equals(java.lang.Object other)
The equals() methods on atomic values is defined to follow the semantics of eq when applied
to two atomic values.
|
java.util.GregorianCalendar |
getCalendar()
Get a Java Calendar object corresponding to this time, on a reference date
|
UnicodeString |
getCanonicalLexicalRepresentation()
Get the canonical lexical representation as defined in XML Schema.
|
AtomicValue |
getComponent(AccessorFn.Component component)
Get a component of the value.
|
byte |
getHour()
Get the hour component, 0-23
|
int |
getMicrosecond()
Get the microsecond component, 0-999_999
|
byte |
getMinute()
Get the minute component, 0-59
|
int |
getNanosecond()
Get the nanosecond component, 0-999_999
|
UnicodeString |
getPrimitiveStringValue()
Convert to string
|
BuiltInAtomicType |
getPrimitiveType()
Determine the primitive type of the value.
|
TimeValue.TimeComparable |
getSchemaComparable() |
byte |
getSecond()
Get the second component, 0-59
|
XPathComparable |
getXPathComparable(StringCollator collator,
int implicitTimezone)
Get an object value that implements the XPath equality and ordering comparison semantics for this value.
|
int |
hashCode()
Returns a hash code value for the object.
|
TimeValue |
makeTimeValue(byte hour,
byte minute,
byte second,
int nanosecond,
int tz)
Factory method to construct a time value given the hour, minute, second, and nanosecond components.
|
static ConversionResult |
makeTimeValue(UnicodeString s)
Static factory method: create a time value from a supplied string, in
ISO 8601 format
|
DayTimeDurationValue |
subtract(CalendarValue other,
XPathContext context)
Determine the difference between two points in time, as a duration
|
DateTimeValue |
toDateTime()
Convert to a DateTime value.
|
adjustTimezone, appendString, appendTimezone, appendTimezone, appendTwoDigits, asMapKey, getTimezoneInMinutes, getXMLGregorianCalendar, getXPathMatchKey, hasTimezone, identityHashCode, isIdentical, makeCalendarValue, removeTimezone, setTimezoneInMinutes
asAtomic, atomize, checkPermittedContents, checkValidInJavascript, effectiveBooleanValue, getCardinality, getGenre, getItemType, getLength, getUnicodeStringValue, getUType, head, isIdentical, isNaN, isUntypedAtomic, itemAt, iterate, iterator, setTypeLabel, show, toShortString, toString
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
asAtomic
getStringValue, isStreamed, reduce, subsequence
asIterable, concatenate, containsNode, materialize
makeRepeatable
@Deprecated public TimeValue(byte hour, byte minute, byte second, int microsecond, int tz)
TimeValue(byte, byte, byte, int, int, String)
that accepts nanosecond precisionhour
- the hour value, 0-23minute
- the minutes value, 0-59second
- the seconds value, 0-59microsecond
- the number of microseconds, 0-999999tz
- the timezone displacement in minutes from UTC. Supply the value
CalendarValue.NO_TIMEZONE
if there is no timezone component.public TimeValue(byte hour, byte minute, byte second, int nanosecond, int tz, java.lang.String flag)
hour
- the hour value, 0-23minute
- the minutes value, 0-59second
- the seconds value, 0-59nanosecond
- the number of microseconds, 0-999999tz
- the timezone displacement in minutes from UTC. Supply the value
CalendarValue.NO_TIMEZONE
if there is no timezone component.flag
- used to disambiguate this constructor. Must be set to "".public TimeValue(java.util.GregorianCalendar calendar, int tz)
calendar
- holds the date and timetz
- the timezone offset in minutes, or NO_TIMEZONE indicating that there is no timezonepublic TimeValue makeTimeValue(byte hour, byte minute, byte second, int nanosecond, int tz)
hour
- the hour value, 0-23minute
- the minutes value, 0-59second
- the seconds value, 0-59nanosecond
- the number of nanoseconds, 0-999_999_999tz
- the timezone displacement in minutes from UTC. Supply the value
CalendarValue.NO_TIMEZONE
if there is no timezone component.public static ConversionResult makeTimeValue(UnicodeString s)
s
- the time in the lexical format hh:mm:ss[.ffffff] followed optionally by
timezone in the form [+-]hh:mm or Zpublic BuiltInAtomicType getPrimitiveType()
getPrimitiveType
in class AtomicValue
public byte getHour()
public byte getMinute()
public byte getSecond()
public int getMicrosecond()
public int getNanosecond()
public UnicodeString getPrimitiveStringValue()
getPrimitiveStringValue
in class AtomicValue
public UnicodeString getCanonicalLexicalRepresentation()
getCanonicalLexicalRepresentation
in interface AtomicSequence
getCanonicalLexicalRepresentation
in class AtomicValue
public DateTimeValue toDateTime()
toDateTime
in class CalendarValue
public java.util.GregorianCalendar getCalendar()
getCalendar
in class CalendarValue
public AtomicValue copyAsSubType(AtomicType typeLabel)
copyAsSubType
in class AtomicValue
typeLabel
- the new type label. This must be a subtype of xs:time.public TimeValue adjustTimezone(int timezone)
adjustTimezone
in class CalendarValue
timezone
- the new timezone offset, in minutespublic AtomicValue getComponent(AccessorFn.Component component) throws XPathException
getComponent
in class AtomicValue
component
- the required componentXPathException
- if a dynamic error occurspublic XPathComparable getXPathComparable(StringCollator collator, int implicitTimezone) throws NoDynamicContextException
AtomicValue
getXPathComparable
in class CalendarValue
collator
- the collation to be used when comparing stringsimplicitTimezone
- the implicit timezone in the dynamic context, used when comparing
dates/times with and without timezoneNoDynamicContextException
- if the supplied implicit timezone is "NO_TIMEZONE" (meaning
unknown), and the implicit timezone is actually required because the value in question is a date/time
value with no timezone. This can cause a failure to evaluate expressions statically (because the implicit
timezone is not known statically), and it will then be caught, meaning that the expression has to be
evaluated dynamically.public int compareTo(XPathComparable other)
compareTo
in interface java.lang.Comparable<XPathComparable>
other
- The other dateTime valuejava.lang.ClassCastException
- if the other value is not a TimeValue (the parameter
is declared as Object to satisfy the Comparable interface)public int compareTo(CalendarValue other, int implicitTimezone) throws NoDynamicContextException
compareTo
in class CalendarValue
other
- The other dateTime valueimplicitTimezone
- The implicit timezone assumed for a value with no timezonejava.lang.ClassCastException
- if the other value is not a DateTimeValue (the parameter
is declared as Object to satisfy the Comparable interface)NoDynamicContextException
- if the implicit timezone is required and is not available
(because the function is called at compile time)public TimeValue.TimeComparable getSchemaComparable()
public boolean equals(java.lang.Object other)
AtomicValue
The hashCode() method is consistent with equals().
equals
in class AtomicValue
other
- the other valuepublic int hashCode()
AtomicValue
hashCode
in class AtomicValue
public TimeValue add(DurationValue duration) throws XPathException
add
in class CalendarValue
duration
- the duration to be added (may be negative)XPathException
- if the duration is an xs:duration, as distinct from
a subclass thereofpublic DayTimeDurationValue subtract(CalendarValue other, XPathContext context) throws XPathException
subtract
in class CalendarValue
other
- the other point in timecontext
- XPath dynamic evaluation contextXPathException
- for example if one value is a date and the other is a timeCopyright (c) 2004-2022 Saxonica Limited. All rights reserved.