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

  • 相关阅读:
    leetcode 673. 最长递增子序列的个数 java
    leetcode 148. 排序链表 java
    leetcode 98. 验证二叉搜索树 java
    leetcode 29. 两数相除 java
    leetcode 234. 回文链表 java
    Valid Palindrome LeetCode Java
    Single Number II LeetCode Java
    Single Number LeetCode java
    Search in Rotated Sorted Array II LeetCode Java
    Search in Rotated Sorted Array leetcode java
  • 原文地址:https://www.cnblogs.com/zhazhaacmer/p/9821330.html
Copyright © 2011-2022 走看看