zoukankan      html  css  js  c++  java
  • Java基础 与时间日期相关的类:System -Date -SimpleDateFormat -Calendar类 -解决后缀.000Z 的时区问题

    笔记总结:

    /**与时间相关的类:System_Date_SimpleDateFormat_Calendar类
     *  1.system 类下的currentTimeMillis()
     *          输出从1970年至今的时间的毫秒数, 运行两次即可用于统计时间间隔!
     *  2.Date() 类:java.util.Date : toString()/getTime()--返回long型64位整数  ;
     *              以及他的子类java.sql.Date
     *  3.SimpleDateFormat 类:(国际化)
     *      格式化: ①构造器: SimpleDateFormat() / SimpleDateFormat(String pattern) :常用pattern:"G yyyy:MM:dd 'at' HH:mm:ss "
     *              ② String str=sdf.format(new Date()) : 利用sdf format一个Date()对象,格式化为字符串输出即可!
     *      解析:
     *              ① 利用parse进行转换, Date date1=sdf.parse("18-10-20 上午10:55");
     *              ② 直接输出Date().toString() 显示Date() 的标准时间!
     *  4.Calendar 类:
     *          ① Calendar c=Calendar.getInstance(); //实现Calendar的引用,因为它没有构造器
     *          ②get(field) / set(field,number) /add(field,number): number可以表示为正负数
     *          ③DAte getTime() /setTime()(Date d)
     */

    测试代码:

    public class TestDate {
    
        @Test//1.Date类
        public void test1(){
            Date d1=new Date();
            System.out.println(d1.toString());
            System.out.println(d1.getTime());long x=d1.getTime();
            Date d2=new Date(x);
            System.out.println(d2);
        }
        @Test //2.SimpleDateFormat
        public void test2() throws Exception{
            //1.格式化1,Date类型转String
            SimpleDateFormat sdf=new SimpleDateFormat();
            String str=sdf.format(new Date());
            System.out.println(str); //18-10-20 上午10:55
            //2.格式化2
            SimpleDateFormat sdf1=new SimpleDateFormat("yyyy-MM-dd 'at' HH:mm:ss");
            str=sdf1.format(new Date());
            System.out.println(str);  //2018:10:20 at 11:10:53
            //3.解析 ,字符串转 Date类型
            Date date1=sdf.parse("18-10-20 上午10:55");
            System.out.println(date1);    //Sat Oct 20 10:55:00 CST 2018
    
            Date date2=sdf1.parse("2018-10-20 at 10:55:32");
            System.out.println(date2);
        }
        @Test //3.Calendar() get
        public void test4(){
            Calendar c=Calendar.getInstance(); //实现Calendar的引用
    
            System.out.println("今天是本月的第几天? "+c.get(Calendar.DAY_OF_MONTH));
            System.out.println("今天的星期几:  "+(c.get(Calendar.DAY_OF_WEEK)-1) );
            //打印当前时分秒
            int h=c.get(Calendar.HOUR_OF_DAY);  //不要用Calendar.HOUR,不然12点就成了0点
            int m=c.get(Calendar.MINUTE);
            int s=c.get(Calendar.SECOND);
            System.out.println("当前Calendar的 时分秒: "+h+":"+m+":"+s);
    
            c.set(Calendar.DAY_OF_MONTH,23);
            Date d=c.getTime();
            System.out.println("更新后的Date时间: "+d);
        }
    }

    输出结果:

    Sat Oct 20 13:13:33 CST 2018
    1540012413382
    Sat Oct 20 13:13:33 CST 2018
    18-10-20 下午1:13
    2018-10-20 at 13:13:33
    Sat Oct 20 10:55:00 CST 2018
    Sat Oct 20 10:55:32 CST 2018
    今天是本月的第几天? 20
    今天的星期几:  6
    当前Calendar的 时分秒: 13:13:33
    更新后的Date时间: Tue Oct 23 13:13:33 CST 2018

     后续补上-解决后缀.000Z 的时区问题

    测试代码:

    @Test
        public void test01() throws ParseException {
    //方法一: 暴利删除后续字符 String s
    =new String("2019-01-31T16:00:00.00"); int pos=s.lastIndexOf("."); if(pos!=-1){ s=s.substring(0,pos); System.out.println(s); } SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); System.out.println(sdf.parse(s)+" ");     //进行时区的转换 String date = "2016-08-15T16:00:00.000Z"; date = date.replace("Z", " UTC"); System.out.println(date); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS Z"); Date d = format.parse(date); System.out.println(d); }

    输出结果:

    2019-01-31T16:00:00
    Thu Jan 31 16:00:00 CST 2019
    
    2016-08-15T16:00:00.000 UTC
    Tue Aug 16 00:00:00 CST 2016

    参考博客:

    https://blog.csdn.net/m0_37983376/article/details/78202770    解决后缀.000Z 的时区问题

    https://www.cnblogs.com/myseries/p/7589408.html    java Date时间的各种转换方式和Mysql存时间类型字段的分析

  • 相关阅读:
    使用C#实现DHT磁力搜索的BT种子后端管理程序+数据库设计(开源)
    便携版WinSCP在命令行下同步文件夹
    ffmpeg (ffprobe)分析文件关键帧时间点
    sqlite删除数据或者表后,回收数据库文件大小
    ubuntu 20.04下 freeswitch 配合 fail2ban 防恶意访问
    ffmpeg使用nvenc编码的结论记录
    PC版跑跑卡丁车 故事模式 亚瑟传说章节 卡美洛庆典 2阶段 心灵之眼 攻略
    There was an error loading or playing the video
    Nvidia RTX Voice 启动报错修复方法
    火狐浏览器 关闭跨域限制
  • 原文地址:https://www.cnblogs.com/zhazhaacmer/p/9821330.html
Copyright © 2011-2022 走看看