Class BaseDateTimeType

All Implemented Interfaces:
ca.uhn.fhir.model.api.IElement, Externalizable, Serializable, org.hl7.fhir.instance.model.api.IBase, org.hl7.fhir.instance.model.api.IBaseDatatype, org.hl7.fhir.instance.model.api.IBaseElement, org.hl7.fhir.instance.model.api.IBaseHasExtensions, org.hl7.fhir.instance.model.api.IPrimitiveType<Date>
Direct Known Subclasses:
DateTimeType, DateType, InstantType

public abstract class BaseDateTimeType extends PrimitiveType<Date>
See Also:
  • Constructor Details

  • Method Details

    • add

      public void add(int theField, int theValue)
      Adds the given amount to the field specified by theField
      Parameters:
      theField - The field, uses constants from Calendar such as Calendar.YEAR
      theValue - The number to add (or subtract for a negative number)
    • after

      public boolean after(DateTimeType theDateTimeType)
      Returns true if the given object represents a date/time before this object
      Throws:
      NullPointerException - If this.getValue() or theDateTimeType.getValue() return null
    • before

      public boolean before(DateTimeType theDateTimeType)
      Returns true if the given object represents a date/time before this object
      Throws:
      NullPointerException - If this.getValue() or theDateTimeType.getValue() return null
    • getValueAsString

      public String getValueAsString(ca.uhn.fhir.model.api.TemporalPrecisionEnum thePrecision)
      Parameters:
      thePrecision -
      Returns:
      the String value of this instance with the specified precision.
    • encode

      protected String encode(Date theValue)
      Description copied from class: PrimitiveType
      Subclasses must override to convert a "coerced" value into an encoded one.
      Specified by:
      encode in class PrimitiveType<Date>
      Parameters:
      theValue - Will not be null
      Returns:
      May return null if the value does not correspond to anything
    • getDay

      public Integer getDay()
      Returns the month with 1-index, e.g. 1=the first day of the month
    • getDefaultPrecisionForDatatype

      protected abstract ca.uhn.fhir.model.api.TemporalPrecisionEnum getDefaultPrecisionForDatatype()
      Returns the default precision for the given datatype
    • getHour

      public Integer getHour()
      Returns the hour of the day in a 24h clock, e.g. 13=1pm
    • getMillis

      public Integer getMillis()
      Returns the milliseconds within the current second.

      Note that this method returns the same value as getNanos() but with less precision.

    • getMinute

      public Integer getMinute()
      Returns the minute of the hour in the range 0-59
    • getMonth

      public Integer getMonth()
      Returns the month with 0-index, e.g. 0=January
    • getSecondsMilli

      public float getSecondsMilli()
    • getNanos

      public Long getNanos()
      Returns the nanoseconds within the current second

      Note that this method returns the same value as getMillis() but with more precision.

    • getPrecision

      public ca.uhn.fhir.model.api.TemporalPrecisionEnum getPrecision()
      Gets the precision for this datatype (using the default for the given type if not set)
      See Also:
    • getSecond

      public Integer getSecond()
      Returns the second of the minute in the range 0-59
    • getTimeZone

      Returns the TimeZone associated with this dateTime's value. May return null if no timezone was supplied.
    • getValueAsCalendar

      Returns the value of this object as a GregorianCalendar
    • getYear

      public Integer getYear()
      Returns the year, e.g. 2015
    • isTimeZoneZulu

      public boolean isTimeZoneZulu()
      Returns true if the timezone is set to GMT-0:00 (Z)
    • isToday

      public boolean isToday()
      Returns true if this object represents a date that is today's date
      Throws:
      NullPointerException - if PrimitiveType.getValue() returns null
    • parse

      protected Date parse(String theValue) throws DataFormatException
      Description copied from class: PrimitiveType
      Subclasses must override to convert an encoded representation of this datatype into a "coerced" one
      Specified by:
      parse in class PrimitiveType<Date>
      Parameters:
      theValue - Will not be null
      Returns:
      May return null if the value does not correspond to anything
      Throws:
      DataFormatException
    • setDay

      public BaseDateTimeType setDay(int theDay)
      Sets the month with 1-index, e.g. 1=the first day of the month
    • setHour

      public BaseDateTimeType setHour(int theHour)
      Sets the hour of the day in a 24h clock, e.g. 13=1pm
    • setMillis

      public BaseDateTimeType setMillis(int theMillis)
      Sets the milliseconds within the current second.

      Note that this method sets the same value as setNanos(long) but with less precision.

    • setMinute

      public BaseDateTimeType setMinute(int theMinute)
      Sets the minute of the hour in the range 0-59
    • setMonth

      public BaseDateTimeType setMonth(int theMonth)
      Sets the month with 0-index, e.g. 0=January
    • setNanos

      public BaseDateTimeType setNanos(long theNanos)
      Sets the nanoseconds within the current second

      Note that this method sets the same value as setMillis(int) but with more precision.

    • setPrecision

      public void setPrecision(ca.uhn.fhir.model.api.TemporalPrecisionEnum thePrecision) throws DataFormatException
      Sets the precision for this datatype
      Throws:
      DataFormatException
    • setSecond

      public BaseDateTimeType setSecond(int theSecond)
      Sets the second of the minute in the range 0-59
    • setTimeZone

      public BaseDateTimeType setTimeZone(TimeZone theTimeZone)
    • setTimeZoneZulu

      public BaseDateTimeType setTimeZoneZulu(boolean theTimeZoneZulu)
    • setValue

      public BaseDateTimeType setValue(Date theValue)
      Sets the value for this type using the given Java Date object as the time, and using the default precision for this datatype (unless the precision is already set), as well as the local timezone as determined by the local operating system. Both of these properties may be modified in subsequent calls if neccesary.
      Specified by:
      setValue in interface org.hl7.fhir.instance.model.api.IPrimitiveType<Date>
      Overrides:
      setValue in class PrimitiveType<Date>
    • setValue

      public void setValue(Date theValue, ca.uhn.fhir.model.api.TemporalPrecisionEnum thePrecision) throws DataFormatException
      Sets the value for this type using the given Java Date object as the time, and using the specified precision, as well as the local timezone as determined by the local operating system. Both of these properties may be modified in subsequent calls if neccesary.
      Parameters:
      theValue - The date value
      thePrecision - The precision
      Throws:
      DataFormatException
    • setValueAsString

      public void setValueAsString(String theString) throws DataFormatException
      Specified by:
      setValueAsString in interface org.hl7.fhir.instance.model.api.IPrimitiveType<Date>
      Overrides:
      setValueAsString in class PrimitiveType<Date>
      Throws:
      DataFormatException
    • setValueAsV3String

      protected void setValueAsV3String(String theV3String)
    • setYear

      public BaseDateTimeType setYear(int theYear)
      Sets the year, e.g. 2015
    • toCalendar

      public Calendar toCalendar()
      Returns a view of this date/time as a Calendar object. Note that the returned Calendar object is entirely independent from this object. Changes to the calendar will not affect this.
    • toHumanDisplay

      Returns a human readable version of this date/time using the system local format.

      Note on time zones: This method renders the value using the time zone that is contained within the value. For example, if this date object contains the value "2012-01-05T12:00:00-08:00", the human display will be rendered as "12:00:00" even if the application is being executed on a system in a different time zone. If this behaviour is not what you want, use toHumanDisplayLocalTimezone() instead.

    • toHumanDisplayLocalTimezone

      Returns a human readable version of this date/time using the system local format, converted to the local timezone if neccesary.
      See Also:
    • isDateTime

      public boolean isDateTime()
      Overrides:
      isDateTime in class Base
    • dateTimeValue

      Overrides:
      dateTimeValue in class Base
    • hasTime

      public boolean hasTime()
    • equalsUsingFhirPathRules

      This method implements a datetime equality check using the rules as defined by FHIRPath. This method returns:
      • true if the given datetimes represent the exact same instant with the same precision (irrespective of the timezone)
      • true if the given datetimes represent the exact same instant but one includes milliseconds of .[0]+ while the other includes only SECONDS precision (irrespecitve of the timezone)
      • true if the given datetimes represent the exact same year/year-month/year-month-date (if both operands have the same precision)
      • false if both datetimes have equal precision of MINUTE or greater, one has no timezone specified but the other does, and could not represent the same instant in any timezone
      • null if both datetimes have equal precision of MINUTE or greater, one has no timezone specified but the other does, and could potentially represent the same instant in any timezone
      • false if the given datetimes have the same precision but do not represent the same instant (irrespective of timezone)
      • null otherwise (since these datetimes are not comparable)
    • compareTimes

      public static Integer compareTimes(BaseDateTimeType left, BaseDateTimeType right, Integer def)
    • fpValue

      public String fpValue()
      Overrides:
      fpValue in class PrimitiveType<Date>