Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.bouncycastle.asn1.cms;
  
  import java.util.Date;
  import java.util.Locale;
  
RFC 5652: Dual-mode timestamp format producing either UTCTIme or GeneralizedTime.

 Time ::= CHOICE {
     utcTime        UTCTime,
     generalTime    GeneralizedTime }
 

This has a constructor using java.util.Date for input which generates a DERUTCTime object if the supplied datetime is in range 1950-01-01-00:00:00 UTC until 2049-12-31-23:59:60 UTC. If the datetime value is outside that range, the generated object will be DERGeneralizedTime.

 
 public class Time
     extends ASN1Object
     implements ASN1Choice
 {
     ASN1Primitive time;
 
     public static Time getInstance(
         ASN1TaggedObject obj,
         boolean          explicit)
     {
         return getInstance(obj.getObject());
     }

    

Deprecated:
use getInstance()
 
     public Time(
         ASN1Primitive   time)
     {
         if (!(time instanceof ASN1UTCTime)
             && !(time instanceof ASN1GeneralizedTime))
         {
             throw new IllegalArgumentException("unknown object passed to Time");
         }
 
         this. = time
     }

    
Creates a time object from a given date - if the date is between 1950 and 2049 a UTCTime object is generated, otherwise a GeneralizedTime is used.

Parameters:
time a date object representing the time of interest.
 
     public Time(
         Date    time)
     {
         SimpleTimeZone      tz = new SimpleTimeZone(0, "Z");
         SimpleDateFormat    dateF = new SimpleDateFormat("yyyyMMddHHmmss");
 
         dateF.setTimeZone(tz);
 
         String  d = dateF.format(time) + "Z";
         int     year = Integer.parseInt(d.substring(0, 4));
 
         if (year < 1950 || year > 2049)
         {
             this. = new DERGeneralizedTime(d);
         }
         else
         {
             this. = new DERUTCTime(d.substring(2));
         }
     }

    
Creates a time object from a given date and locale - if the date is between 1950 and 2049 a UTCTime object is generated, otherwise a GeneralizedTime is used. You may need to use this constructor if the default locale doesn't use a Gregorian calender so that the GeneralizedTime produced is compatible with other ASN.1 implementations.

Parameters:
time a date object representing the time of interest.
locale an appropriate Locale for producing an ASN.1 GeneralizedTime value.
 
     public Time(
        Date    time,
        Locale locale)
    {
        SimpleTimeZone      tz = new SimpleTimeZone(0, "Z");
        SimpleDateFormat    dateF = new SimpleDateFormat("yyyyMMddHHmmss"locale);
        dateF.setTimeZone(tz);
        String  d = dateF.format(time) + "Z";
        int     year = Integer.parseInt(d.substring(0, 4));
        if (year < 1950 || year > 2049)
        {
            this. = new DERGeneralizedTime(d);
        }
        else
        {
            this. = new DERUTCTime(d.substring(2));
        }
    }

    
Return a Time object from the given object.

Accepted inputs:

  • null &rarr; null
  • Time object
  • DERUTCTime object
  • DERGeneralizedTime object

Parameters:
obj the object we want converted.
Throws:
java.lang.IllegalArgumentException if the object cannot be converted.
    public static Time getInstance(
        Object  obj)
    {
        if (obj == null || obj instanceof Time)
        {
            return (Time)obj;
        }
        else if (obj instanceof ASN1UTCTime)
        {
            return new Time((ASN1UTCTime)obj);
        }
        else if (obj instanceof ASN1GeneralizedTime)
        {
            return new Time((ASN1GeneralizedTime)obj);
        }
        throw new IllegalArgumentException("unknown object in factory: " + obj.getClass().getName());
    }

    
Get the date+tine as a String in full form century format.
    public String getTime()
    {
        if ( instanceof ASN1UTCTime)
        {
            return ((ASN1UTCTime)).getAdjustedTime();
        }
        else
        {
            return ((ASN1GeneralizedTime)).getTime();
        }
    }

    
Get java.util.Date version of date+time.
    public Date getDate()
    {
        try
        {
            if ( instanceof ASN1UTCTime)
            {
                return ((ASN1UTCTime)).getAdjustedDate();
            }
            else
            {
                return ((ASN1GeneralizedTime)).getDate();
            }
        }
        catch (ParseException e)
        {         // this should never happen
            throw new IllegalStateException("invalid date string: " + e.getMessage());
        }
    }

    
Produce an object suitable for an ASN1OutputStream.
    {
        return ;
    }
New to GrepCode? Check out our FAQ X