⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 derutctime.java

📁 java 文件下载器。可自定义
💻 JAVA
字号:
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi space 
// Source File Name:   DERUTCTime.java

package org.bouncycastle.asn1;

import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.SimpleTimeZone;

// Referenced classes of package org.bouncycastle.asn1:
//			ASN1Object, ASN1OctetString, ASN1TaggedObject, DEROutputStream, 
//			DERObject

public class DERUTCTime extends ASN1Object
{

	String time;

	public static DERUTCTime getInstance(Object obj)
	{
		if (obj == null || (obj instanceof DERUTCTime))
			return (DERUTCTime)obj;
		if (obj instanceof ASN1OctetString)
			return new DERUTCTime(((ASN1OctetString)obj).getOctets());
		else
			throw new IllegalArgumentException((new StringBuilder()).append("illegal object in getInstance: ").append(obj.getClass().getName()).toString());
	}

	public static DERUTCTime getInstance(ASN1TaggedObject obj, boolean explicit)
	{
		return getInstance(obj.getObject());
	}

	public DERUTCTime(String time)
	{
		this.time = time;
		try
		{
			getDate();
		}
		catch (ParseException e)
		{
			throw new IllegalArgumentException((new StringBuilder()).append("invalid date string: ").append(e.getMessage()).toString());
		}
	}

	public DERUTCTime(Date time)
	{
		SimpleDateFormat dateF = new SimpleDateFormat("yyMMddHHmmss'Z'");
		dateF.setTimeZone(new SimpleTimeZone(0, "Z"));
		this.time = dateF.format(time);
	}

	DERUTCTime(byte bytes[])
	{
		char dateC[] = new char[bytes.length];
		for (int i = 0; i != dateC.length; i++)
			dateC[i] = (char)(bytes[i] & 0xff);

		time = new String(dateC);
	}

	public Date getDate()
		throws ParseException
	{
		SimpleDateFormat dateF = new SimpleDateFormat("yyMMddHHmmssz");
		return dateF.parse(getTime());
	}

	public Date getAdjustedDate()
		throws ParseException
	{
		SimpleDateFormat dateF = new SimpleDateFormat("yyyyMMddHHmmssz");
		dateF.setTimeZone(new SimpleTimeZone(0, "Z"));
		return dateF.parse(getAdjustedTime());
	}

	public String getTime()
	{
		if (time.indexOf('-') < 0 && time.indexOf('+') < 0)
			if (time.length() == 11)
				return (new StringBuilder()).append(time.substring(0, 10)).append("00GMT+00:00").toString();
			else
				return (new StringBuilder()).append(time.substring(0, 12)).append("GMT+00:00").toString();
		int index = time.indexOf('-');
		if (index < 0)
			index = time.indexOf('+');
		String d = time;
		if (index == time.length() - 3)
			d = (new StringBuilder()).append(d).append("00").toString();
		if (index == 10)
			return (new StringBuilder()).append(d.substring(0, 10)).append("00GMT").append(d.substring(10, 13)).append(":").append(d.substring(13, 15)).toString();
		else
			return (new StringBuilder()).append(d.substring(0, 12)).append("GMT").append(d.substring(12, 15)).append(":").append(d.substring(15, 17)).toString();
	}

	public String getAdjustedTime()
	{
		String d = getTime();
		if (d.charAt(0) < '5')
			return (new StringBuilder()).append("20").append(d).toString();
		else
			return (new StringBuilder()).append("19").append(d).toString();
	}

	private byte[] getOctets()
	{
		char cs[] = time.toCharArray();
		byte bs[] = new byte[cs.length];
		for (int i = 0; i != cs.length; i++)
			bs[i] = (byte)cs[i];

		return bs;
	}

	void encode(DEROutputStream out)
		throws IOException
	{
		out.writeEncoded(23, getOctets());
	}

	boolean asn1Equals(DERObject o)
	{
		if (!(o instanceof DERUTCTime))
			return false;
		else
			return time.equals(((DERUTCTime)o).time);
	}

	public int hashCode()
	{
		return time.hashCode();
	}

	public String toString()
	{
		return time;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -