Java时间和时间戳的相互转换

时间戳是指文件属性里的创建、修改、访问时间。

数字时间戳技术是数字签名技术一种变种的应用。在电子商务交易文件中,时间是十分重要的信息。在书面合同中,文件签署的日期和签名一样均是十分重要的防止文件被伪造和篡改的关键性内容。数字时间戳服务(DTS:digital time stamp service)是网上电子商务安全服务项目之一,能提供电子文件的日期和时间信息的安全保护。

编辑本段组成部分

时间戳(time-stamp)是一个经加密后形成的凭证文档,它包括三个部分:

(1)需加时间戳的文件的摘要(digest);

(2)DTS收到文件的日期和时间;

(3)DTS的数字签名。

一般来说,时间戳产生的过程为:用户首先将需要加时间戳的文件用Hash编码加密形成摘要,然后将该摘要发送到DTS,DTS在加入了收到文件摘要的日期和时间信息后再对该文件加密(数字签名),然后送回用户。

书面签署文件的时间是由签署人自己写上的,而数字时间戳则不然,它是由认证单位DTS来加的,以DTS收到文件的时间为依据。

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
public class TimeTest {
    public static void main(String[] args) {
        System.out.println();
        String tt = dataToString("1992-10-25 10:24:24");
        System.out.println("1992-10-25 10:24:24 时间戳 "+tt);
        System.out.println();

        String tt1 = dataToString("2016-6-16 17:23:51");
        System.out.println("2016-6-16 17:23:51 时间戳 "+tt1);
        System.out.println();
        
        long stamp = getSystemStamp();

        String st1 = stampToDate("719979864000");
        System.out.println(st1);
        System.out.println();

        String st2 = stampToDate("1466069031000");
        System.out.println(st2);
        System.out.println();
    }
    /**
     * 掉此方法输入所要转换的时间输入例如("2016-6-16 17:23:51")返回时间戳
     * 
     * @param time
     * @return
     */
    public static String dataToString(String time) {
        SimpleDateFormat sdr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss",Locale.CHINA);
        Date date;
        String times = null;
        try {
            date = sdr.parse(time);
            long l = date.getTime();
            String stf = String.valueOf(l);
            times = getMySubstring(stf);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return times;
    }
    /** 
     * 将时间戳转换为时间 输入例如(1402733340)输出(2016-6-16 17:25:59")
     * @param time
     * @return
     */
    public static String stampToDate(String stamp){
        String res;
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        long lt = new Long(stamp);
        Date date = new Date(lt);
        res = simpleDateFormat.format(date);
        return res;
    }
    /**
     * 字符串去掉最后三位
     * @param str
     * @return
     */
    public static String getMySubstring(String str){
        return str.substring(0, str.length()-3);
    }
    /**
     * 获取当前系统时间的时间戳
     * @return long
     */
    public static long getSystemStamp(){
        //获取当前时间的时间戳
        //方法 一
        long t1=System.currentTimeMillis();
        System.out.println(t1);
        //方法 二
        long t2 = Calendar.getInstance().getTimeInMillis();
        System.out.println(t2);
        //方法 三
        long t3 = new Date().getTime();
        System.out.println(t3);
        return 1;
    }
}

 

发表评论

评论已关闭。

相关文章

猜你喜欢