Enum IsoEra

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Comparable<IsoEra>, Era, TemporalAccessor, TemporalAdjuster

    public enum IsoEra
    extends java.lang.Enum<IsoEra>
    implements Era
    An era in the ISO calendar system.

    The ISO-8601 standard does not define eras. A definition has therefore been created with two eras - 'Current era' (CE) for years on or after 0001-01-01 (ISO), and 'Before current era' (BCE) for years before that.

    year-of-era era proleptic-year
    2CE2
    1CE1
    1BCE0
    2BCE-1

    Do not use ordinal() to obtain the numeric representation of IsoEra. Use getValue() instead.

    This is an immutable and thread-safe enum.

    • Enum Constant Summary

      Enum Constants 
      Enum Constant Description
      BCE
      The singleton instance for the era before the current one, 'Before Current Era', which has the numeric value 0.
      CE
      The singleton instance for the current era, 'Current Era', which has the numeric value 1.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      Temporal adjustInto​(Temporal temporal)
      Adjusts the specified temporal object to have the same era as this object.
      int get​(TemporalField field)
      Gets the value of the specified field from this era as an int.
      long getLong​(TemporalField field)
      Gets the value of the specified field from this era as a long.
      int getValue()
      Gets the numeric era int value.
      boolean isSupported​(TemporalField field)
      Checks if the specified field is supported.
      static IsoEra of​(int isoEra)
      Obtains an instance of IsoEra from an int value.
      <R> R query​(TemporalQuery<R> query)
      Queries this era using the specified query.
      ValueRange range​(TemporalField field)
      Gets the range of valid values for the specified field.
      static IsoEra valueOf​(java.lang.String name)
      Returns the enum constant of this type with the specified name.
      static IsoEra[] values()
      Returns an array containing the constants of this enum type, in the order they are declared.
      • Methods inherited from class java.lang.Enum

        clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
      • Methods inherited from class java.lang.Object

        getClass, notify, notifyAll, wait, wait, wait
    • Enum Constant Detail

      • BCE

        public static final IsoEra BCE
        The singleton instance for the era before the current one, 'Before Current Era', which has the numeric value 0.
      • CE

        public static final IsoEra CE
        The singleton instance for the current era, 'Current Era', which has the numeric value 1.
    • Method Detail

      • values

        public static IsoEra[] values()
        Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:
        for (IsoEra c : IsoEra.values())
            System.out.println(c);
        
        Returns:
        an array containing the constants of this enum type, in the order they are declared
      • valueOf

        public static IsoEra valueOf​(java.lang.String name)
        Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
        Parameters:
        name - the name of the enum constant to be returned.
        Returns:
        the enum constant with the specified name
        Throws:
        java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
        java.lang.NullPointerException - if the argument is null
      • of

        public static IsoEra of​(int isoEra)
        Obtains an instance of IsoEra from an int value.

        IsoEra is an enum representing the ISO eras of BCE/CE. This factory allows the enum to be obtained from the int value.

        Parameters:
        isoEra - the BCE/CE value to represent, from 0 (BCE) to 1 (CE)
        Returns:
        the era singleton, not null
        Throws:
        DateTimeException - if the value is invalid
      • getValue

        public int getValue()
        Gets the numeric era int value.

        The era BCE has the value 0, while the era CE has the value 1.

        Specified by:
        getValue in interface Era
        Returns:
        the era value, from 0 (BCE) to 1 (CE)
      • isSupported

        public boolean isSupported​(@Nullable
                                   TemporalField field)
        Checks if the specified field is supported.

        This checks if this era can be queried for the specified field. If false, then calling the range and get methods will throw an exception.

        If the field is a ChronoField then the query is implemented here. The ERA field returns true. All other ChronoField instances will return false.

        If the field is not a ChronoField, then the result of this method is obtained by invoking TemporalField.isSupportedBy(TemporalAccessor) passing this as the argument. Whether the field is supported is determined by the field.

        Specified by:
        isSupported in interface Era
        Specified by:
        isSupported in interface TemporalAccessor
        Parameters:
        field - the field to check, null returns false
        Returns:
        true if the field is supported on this era, false if not
      • range

        public ValueRange range​(TemporalField field)
        Gets the range of valid values for the specified field.

        The range object expresses the minimum and maximum valid values for a field. This era is used to enhance the accuracy of the returned range. If it is not possible to return the range, because the field is not supported or for some other reason, an exception is thrown.

        If the field is a ChronoField then the query is implemented here. The ERA field returns the range. All other ChronoField instances will throw an UnsupportedTemporalTypeException.

        If the field is not a ChronoField, then the result of this method is obtained by invoking TemporalField.rangeRefinedBy(TemporalAccessor) passing this as the argument. Whether the range can be obtained is determined by the field.

        The default implementation must return a range for ERA from zero to one, suitable for two era calendar systems such as ISO.

        Specified by:
        range in interface Era
        Specified by:
        range in interface TemporalAccessor
        Parameters:
        field - the field to query the range for, not null
        Returns:
        the range of valid values for the field, not null
        Throws:
        DateTimeException - if the range for the field cannot be obtained
        UnsupportedTemporalTypeException - if the unit is not supported
      • get

        public int get​(TemporalField field)
        Gets the value of the specified field from this era as an int.

        This queries this era for the value of the specified field. The returned value will always be within the valid range of values for the field. If it is not possible to return the value, because the field is not supported or for some other reason, an exception is thrown.

        If the field is a ChronoField then the query is implemented here. The ERA field returns the value of the era. All other ChronoField instances will throw an UnsupportedTemporalTypeException.

        If the field is not a ChronoField, then the result of this method is obtained by invoking TemporalField.getFrom(TemporalAccessor) passing this as the argument. Whether the value can be obtained, and what the value represents, is determined by the field.

        Specified by:
        get in interface Era
        Specified by:
        get in interface TemporalAccessor
        Parameters:
        field - the field to get, not null
        Returns:
        the value for the field
        Throws:
        DateTimeException - if a value for the field cannot be obtained or the value is outside the range of valid values for the field
        UnsupportedTemporalTypeException - if the field is not supported or the range of values exceeds an int
      • getLong

        public long getLong​(TemporalField field)
        Gets the value of the specified field from this era as a long.

        This queries this era for the value of the specified field. If it is not possible to return the value, because the field is not supported or for some other reason, an exception is thrown.

        If the field is a ChronoField then the query is implemented here. The ERA field returns the value of the era. All other ChronoField instances will throw an UnsupportedTemporalTypeException.

        If the field is not a ChronoField, then the result of this method is obtained by invoking TemporalField.getFrom(TemporalAccessor) passing this as the argument. Whether the value can be obtained, and what the value represents, is determined by the field.

        Specified by:
        getLong in interface Era
        Specified by:
        getLong in interface TemporalAccessor
        Parameters:
        field - the field to get, not null
        Returns:
        the value for the field
        Throws:
        DateTimeException - if a value for the field cannot be obtained
        UnsupportedTemporalTypeException - if the field is not supported
      • query

        @Nullable
        public <R> R query​(TemporalQuery<R> query)
        Queries this era using the specified query.

        This queries this era using the specified query strategy object. The TemporalQuery object defines the logic to be used to obtain the result. Read the documentation of the query to understand what the result of this method will be.

        The result of this method is obtained by invoking the TemporalQuery.queryFrom(TemporalAccessor) method on the specified query passing this as the argument.

        Specified by:
        query in interface TemporalAccessor
        Type Parameters:
        R - the type of the result
        Parameters:
        query - the query to invoke, not null
        Returns:
        the query result, null may be returned (defined by the query)
        Throws:
        DateTimeException - if unable to query (defined by the query)
      • adjustInto

        public Temporal adjustInto​(Temporal temporal)
        Adjusts the specified temporal object to have the same era as this object.

        This returns a temporal object of the same observable type as the input with the era changed to be the same as this.

        The adjustment is equivalent to using Temporal.with(TemporalField, long) passing ChronoField.ERA as the field.

        In most cases, it is clearer to reverse the calling pattern by using Temporal.with(TemporalAdjuster):

           // these two lines are equivalent, but the second approach is recommended
           temporal = thisEra.adjustInto(temporal);
           temporal = temporal.with(thisEra);
         

        This instance is immutable and unaffected by this method call.

        Specified by:
        adjustInto in interface Era
        Specified by:
        adjustInto in interface TemporalAdjuster
        Parameters:
        temporal - the target object to be adjusted, not null
        Returns:
        the adjusted object, not null
        Throws:
        DateTimeException - if unable to make the adjustment