时间戳和时间相互转换

659 阅读1分钟

时间戳一般为10位和13位,10位的单位是秒,13位的是毫秒,一般开发用到的都是10位时间戳
数据库字段类型为int,所以10位时间戳要进行转换

//获取时间戳
Long timestamp = System.currentTimeMillis();
Long  time = timestamp.getTime();
//获取时间戳
Date date = new Date();
Long time1 = date.getTime();

13位的时间戳

 //时间和时间戳互相转换
    public static void main(String[] args) {
        //定义时间格式
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //时间戳,可以new也可以直接定
        Timestamp timestamp = new Timestamp(System.currentTimeMillis());
//        Long timestamp1 = System.currentTimeMillis();
        //一个13位的时间戳,长度为long
        Long  a = timestamp.getTime();
        System.out.println("==============时间戳===============");
        System.out.println(a);
        System.out.println("===========时间戳转换为时间==================");
        //时间戳转化为时间
        String b = sdf.format(a);
        System.out.println(b);
        System.out.println("=============当前时间================");
        //当前时间
        Date date = new Date();
        System.out.println(date);
        System.out.println(sdf.format(date));
        System.out.println("=============时间转换为时间戳================");
        //变成时间戳
        Long c = date.getTime();
        System.out.println(c);
        System.out.println("=============测试================");
        //转换回去
        System.out.println(sdf.format(c));
    }

在这里插入图片描述

10位的时间戳

//时间和时间戳互相转换
    public static void main(String[] args) {
        //定义时间格式
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //时间戳,可以new也可以直接定
        //时间戳一般为10位和13位
        //10位的单位是秒,13位的是毫秒
        Timestamp timestamp = new Timestamp(System.currentTimeMillis()/1000);
//        Long timestamp1 = System.currentTimeMillis();
        //一个13位的时间戳,长度为long
        int  a = (int) timestamp.getTime();
        System.out.println("==============时间戳===============");
        System.out.println(a);
        System.out.println("===========时间戳转换为时间==================");
        //时间戳转化为时间
        Long a1 = Long.valueOf(a);
        String b = sdf.format(a1*1000);
        System.out.println(b);
        System.out.println("=============当前时间================");
        //当前时间
        Date date = new Date();
        System.out.println(date);
        System.out.println(sdf.format(date));
        System.out.println("=============时间转换为时间戳================");
        //变成时间戳
        Long c = date.getTime()/1000;
        int c1 = Math.toIntExact(c);
        System.out.println(c);
        System.out.println("=============测试================");
        //转换回去
        System.out.println(sdf.format(c*1000));
    }

在这里插入图片描述