Date asDate() throws ParseException { return asCalendar().getTime(); }
@SuppressWarnings("WeakerAccess") Calendar asCalendar() throws ParseException { Matcher matcher = utcTimePattern.matcher(toString()); if (!matcher.find()) throw new ParseException("", 0); String mg; int year = Integer.valueOf(matcher.group("year")); int month = Integer.valueOf(matcher.group("month")); month -= 1; // java.util.Calendar's month goes from 0 to 11 int day = Integer.valueOf(matcher.group("day")); int hour = Integer.valueOf(matcher.group("hour")); int minute = Integer.valueOf(matcher.group("minute")); mg = matcher.group("second"); int second = mg == null ? 0 : Integer.valueOf(mg); mg = matcher.group("timezone"); String timeZoneStr = mg.equals("Z") ? "UTC" : "GMT" + mg; TimeZone timeZone = TimeZone.getTimeZone(timeZoneStr); Calendar calendar = Calendar.getInstance(timeZone); // Add 2000 to the year int century = (calendar.get(Calendar.YEAR) / 100) * 100; year += century; // noinspection MagicConstant calendar.set(year, month, day, hour, minute, second); calendar.set(Calendar.MILLISECOND, 0); return calendar; }
public int decode(InputStream is, BerTag berTag) throws IOException { int codeLength = 0; BerTag passedTag = berTag; if (berTag == null) { berTag = new BerTag(); codeLength += berTag.decode(is); } if (berTag.equals(BerUtcTime.tag)) { utcTime = new BerUtcTime(); codeLength += utcTime.decode(is, false); return codeLength; } if (berTag.equals(BerGeneralizedTime.tag)) { generalTime = new BerGeneralizedTime(); codeLength += generalTime.decode(is, false); return codeLength; } if (passedTag != null) { return 0; } throw new IOException("Error decoding CHOICE: Tag " + berTag + " matched to no item."); }
public int encode(OutputStream reverseOS) throws IOException { if (code != null) { for (int i = code.length - 1; i >= 0; i--) { reverseOS.write(code[i]); } return code.length; } int codeLength = 0; if (generalTime != null) { codeLength += generalTime.encode(reverseOS, true); return codeLength; } if (utcTime != null) { codeLength += utcTime.encode(reverseOS, true); return codeLength; } throw new IOException("Error encoding CHOICE: No element of CHOICE was selected."); }
@SuppressWarnings("WeakerAccess") Calendar asCalendar() throws ParseException { Matcher matcher = utcTimePattern.matcher(toString()); if (!matcher.find()) throw new ParseException("", 0); String mg; int year = Integer.valueOf(matcher.group("year")); int month = Integer.valueOf(matcher.group("month")); month -= 1; // java.util.Calendar's month goes from 0 to 11 int day = Integer.valueOf(matcher.group("day")); int hour = Integer.valueOf(matcher.group("hour")); int minute = Integer.valueOf(matcher.group("minute")); mg = matcher.group("second"); int second = mg == null ? 0 : Integer.valueOf(mg); mg = matcher.group("timezone"); String timeZoneStr = mg.equals("Z") ? "UTC" : "GMT" + mg; TimeZone timeZone = TimeZone.getTimeZone(timeZoneStr); Calendar calendar = Calendar.getInstance(timeZone); // Add 2000 to the year int century = (calendar.get(Calendar.YEAR) / 100) * 100; year += century; // noinspection MagicConstant calendar.set(year, month, day, hour, minute, second); calendar.set(Calendar.MILLISECOND, 0); return calendar; }
Date asDate() throws ParseException { return asCalendar().getTime(); }
@SuppressWarnings("WeakerAccess") Calendar asCalendar() throws ParseException { Matcher matcher = utcTimePattern.matcher(toString()); if (!matcher.find()) throw new ParseException("", 0); String mg; int year = Integer.valueOf(matcher.group("year")); int month = Integer.valueOf(matcher.group("month")); month -= 1; // java.util.Calendar's month goes from 0 to 11 int day = Integer.valueOf(matcher.group("day")); int hour = Integer.valueOf(matcher.group("hour")); int minute = Integer.valueOf(matcher.group("minute")); mg = matcher.group("second"); int second = mg == null ? 0 : Integer.valueOf(mg); mg = matcher.group("timezone"); String timeZoneStr = mg.equals("Z") ? "UTC" : "GMT" + mg; TimeZone timeZone = TimeZone.getTimeZone(timeZoneStr); Calendar calendar = Calendar.getInstance(timeZone); // Add 2000 to the year int century = (calendar.get(Calendar.YEAR) / 100) * 100; year += century; // noinspection MagicConstant calendar.set(year, month, day, hour, minute, second); calendar.set(Calendar.MILLISECOND, 0); return calendar; }
Date asDate() throws ParseException { return asCalendar().getTime(); }