Class DERUTCTime

All Implemented Interfaces:
DEREncodable, DERTags

public class DERUTCTime extends ASN1Object
UTC time object.
  • Field Details

  • Constructor Details

    • DERUTCTime

      public DERUTCTime(String time)
      The correct format for this is YYMMDDHHMMSSZ (it used to be that seconds were never encoded. When you're creating one of these objects from scratch, that's what you want to use, otherwise we'll try to deal with whatever gets read from the input stream... (this is why the input format is different from the getTime() method output).

      Parameters:
      time - the time string.
    • DERUTCTime

      public DERUTCTime(Date time)
      base constructer from a java.util.date object
    • DERUTCTime

      DERUTCTime(byte[] bytes)
  • Method Details

    • getInstance

      public static DERUTCTime getInstance(Object obj)
      return an UTC Time from the passed in object.
      Throws:
      IllegalArgumentException - if the object cannot be converted.
    • getInstance

      public static DERUTCTime getInstance(ASN1TaggedObject obj, boolean explicit)
      return an UTC Time from a tagged object.
      Parameters:
      obj - the tagged object holding the object we want
      explicit - true if the object is meant to be explicitly tagged false otherwise.
      Throws:
      IllegalArgumentException - if the tagged object cannot be converted.
    • getDate

      public Date getDate() throws ParseException
      return the time as a date based on whatever a 2 digit year will return. For standardised processing use getAdjustedDate().
      Returns:
      the resulting date
      Throws:
      ParseException - if the date string cannot be parsed.
    • getAdjustedDate

      public Date getAdjustedDate() throws ParseException
      return the time as an adjusted date in the range of 1950 - 2049.
      Returns:
      a date in the range of 1950 to 2049.
      Throws:
      ParseException - if the date string cannot be parsed.
    • getTime

      public String getTime()
      return the time - always in the form of YYMMDDhhmmssGMT(+hh:mm|-hh:mm).

      Normally in a certificate we would expect "Z" rather than "GMT", however adding the "GMT" means we can just use:

           dateF = new SimpleDateFormat("yyMMddHHmmssz");
       
      To read in the time and get a date which is compatible with our local time zone.

      Note: In some cases, due to the local date processing, this may lead to unexpected results. If you want to stick the normal convention of 1950 to 2049 use the getAdjustedTime() method.

    • getAdjustedTime

      public String getAdjustedTime()
      return a time string as an adjusted date with a 4 digit year. This goes in the range of 1950 - 2049.
    • getOctets

      private byte[] getOctets()
    • encode

      void encode(DEROutputStream out) throws IOException
      Specified by:
      encode in class ASN1Object
      Throws:
      IOException
    • asn1Equals

      boolean asn1Equals(DERObject o)
      Specified by:
      asn1Equals in class ASN1Object
    • hashCode

      public int hashCode()
      Specified by:
      hashCode in class ASN1Object
    • toString

      public String toString()
      Overrides:
      toString in class Object