1 package org.bouncycastle.asn1.x509;
4 import java.util.SimpleTimeZone;
5 import java.text.ParsePosition;
6 import java.text.SimpleDateFormat;
8 import org.bouncycastle.asn1.*;
11 implements DEREncodable
15 public static Time getInstance(
19 return getInstance(obj.getObject());
25 if (!(time instanceof DERUTCTime)
26 && !(time instanceof DERGeneralizedTime))
28 throw new IllegalArgumentException("unknown object passed to Time");
35 * creates a time object from a given date - if the date is between 1950
36 * and 2049 a UTCTime object is generated, otherwise a GeneralizedTime
42 SimpleTimeZone tz = new SimpleTimeZone(0, "Z");
43 SimpleDateFormat dateF = new SimpleDateFormat("yyyyMMddHHmmss");
45 dateF.setTimeZone(tz);
47 String d = dateF.format(date) + "Z";
48 int year = Integer.parseInt(d.substring(0, 4));
50 if (year < 1950 || year > 2049)
52 time = new DERGeneralizedTime(d);
56 time = new DERUTCTime(d.substring(2));
60 public static Time getInstance(
63 if (obj instanceof Time)
67 else if (obj instanceof DERUTCTime)
69 return new Time((DERUTCTime)obj);
71 else if (obj instanceof DERGeneralizedTime)
73 return new Time((DERGeneralizedTime)obj);
76 throw new IllegalArgumentException("unknown object in factory");
79 public String getTime()
81 if (time instanceof DERUTCTime)
83 return ((DERUTCTime)time).getAdjustedTime();
87 return ((DERGeneralizedTime)time).getTime();
93 SimpleDateFormat dateF = new SimpleDateFormat("yyyyMMddHHmmssz");
95 return dateF.parse(this.getTime(), new ParsePosition(0));
102 * generalTime GeneralizedTime }
105 public DERObject getDERObject()