Java时间类型转换(Date转String、String转Date、GMT转Date格式 String格式 时间戳)

Date转String格式(yyyy-MM-dd HH:mm:ss)

        //获取当前的日期
        Date date = new Date();
        //设置时间格式
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //转换为String格式
        String dateStr = sdf.format(date);

结果:2019-08-30 15:54:02

String转Date

        String dateStr = "2019-08-30 15:56:27";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try {
            Date date = sdf.parse(dateStr);
        } catch (ParseException e) {
            e.printStackTrace();
        }

结果:Fri Aug 30 15:56:27 CST 2019

时间戳转String

        long time = 1485178077000L;
        //设置时间格式
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //转换为String格式
        String dateStr = sdf.format(new Date(time));
        System.out.println(dateStr);

结果:2017-01-23 21:27:57

String转时间戳

        String strDate = "2017-01-23 21:27:57";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try {
            long time = sdf.parse(strDate).getTime();
            System.out.println(time);
        } catch (ParseException e) {
            e.printStackTrace();
        }

结果:1485178077000

Date格式转时间戳

        Date date = new Date();
        long time = date.getTime();
        System.out.println(time);

结果:1567156766484

时间戳转Date格式

        long time = 1567156766484L;
        Date date = new Date(time);
        System.out.println(date);

结果:Fri Aug 30 17:19:26 CST 2019

CST字符串格式转Date格式、String格式、时间戳

        String dateStr = "Fri Aug 30 15:56:27 CST 2019";
        SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss 'CST' yyyy", Locale.ENGLISH);
        try {
            //转换Date格式
            Date date = sdf.parse(dateStr);
            System.out.println("date格式:" + date);

            //转换时间戳格式
            long time = date.getTime();
            System.out.println("时间戳:" + time);

            sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            //转换为String格式
            String newStr = sdf.format(date);
            System.out.println("String格式" + newStr);
        } catch (ParseException e) {
            e.printStackTrace();
        }

结果:

GMT(格林威治时间)字符串格式转Date格式、String格式、时间戳  -- CST格式

        String stringDate = "Fri, 30 Aug 2019 09:39:07 GMT";
        System.out.println("格林威治时间:" + stringDate);
        //如果stringDate中没有‘,’号,格式转换中也不要加,保持一致
        SimpleDateFormat sdf = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z", Locale.ENGLISH);
        try {
            //格林威治时间字符串转为Date格式 - 此Date是北京时间 GMT+8
            Date date = sdf.parse(stringDate);
            System.out.println("GMT+8 Date格式:" + date);
            //格林威治时间字符串转为时间戳 - 此时间戳是北京时间 GMT+8
            long time = date.getTime();
            System.out.println("GMT+8 时间戳:" + time);

            sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            //格林威治时间字符串转为String字符串 - 此String字符串是北京时间 GMT+8
            String newStr = sdf.format(date);
            System.out.println("GMT+8 String格式:" + newStr);

        } catch (ParseException e) {
            e.printStackTrace();
        }

结果:

GMT(格林威治时间)字符串格式转String格式  -- 保持GMT格式

        String stringDate = "Fri, Aug 30 09:39:07 GMT 2019";
        System.out.println("格林威治时间:" + stringDate);
        //如果stringDate中没有‘,’号,格式转换中也不要加,保持一致
        SimpleDateFormat gmt = new SimpleDateFormat("EEE, MMM dd HH:mm:ss 'GMT' yyyy",Locale.ENGLISH);
        try {

            // GMT转换时间戳 - 此时间戳是格林威治时间
            long gmtTime = gmt.parse(stringDate).getTime();
            System.out.println("格林威治时间时间戳:" + gmtTime);

            // 时间戳转换String字符串 - 此时间戳是格林威治时间
            gmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            String gmtString = gmt.format(new Date(gmtTime));
            System.out.println("格林威治时间String字符串:" + gmtString);
        } catch (ParseException e) {
            e.printStackTrace();
        }

结果:

SimpleDateFormat参数对照表

这里附上一张网上SimpleDateFormat参数对照表,只要掌握字母规则,就可以转换出自己需要的时间格式

字母 日期或时间元素 表示 示例
G Era 标志符 Text AD
y Year 1996; 96
M 年中的月份 Month July; Jul; 07
w 年中的周数 Number 27
W 月份中的周数 Number 2
D 年中的天数 Number 189
d 月份中的天数 Number 10
F 月份中的星期 Number 2
E 星期中的天数 Text Tuesday; Tue
a Am/pm 标记 Text PM
H 一天中的小时数(0-23) Number 0
k 一天中的小时数(1-24) Number 24
K am/pm中的小时数(0-11) Number 0
h am/pm 中的小时数(1-12) Number 12
m 小时中的分钟数 Number 30
s 分钟中的秒数 Number 55
S 毫秒数 Number 978
z 时区 General time zone Pacific Standard Time; PST; GMT-08:00
Z 时区 RFC 822 time zone -0800
发布了22 篇原创文章 · 获赞 4 · 访问量 3036

猜你喜欢

转载自blog.csdn.net/weixin_43841693/article/details/100160557