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存时间类型字段的分析

  • 相关阅读:
    软件工程第八周总结
    一维最大子数组的和续
    程序员修炼之道阅读笔记02
    软件工程第七周总结
    团队软件的NABCD—校园知网
    程序员修炼之道阅读笔记01
    软件项目管理阅读笔记01
    个人作业4 结对开发地铁
    学习进度五
    学习进度四
  • 原文地址:https://www.cnblogs.com/zhazhaacmer/p/9821330.html
Copyright © 2011-2022 走看看