Java日志第24天 2020.7.29

Date类

Date类的概念与作用

Date类表示特定的瞬间,精确到毫秒。

1秒 = 1000 毫秒

时间原点(0毫秒):1970年1月1日 0:0:0(英国格林尼治天文台时间)

而因为中国属于东八区,故时间原点应在此基础上加上八个小时。

 

输出时间原点

public class Demo01Date {
    public static void main(String[] args) {
        System.out.println(System.currentTimeMillis());
    }
}

 

 

毫秒值与时间换算

1天 = 24小时 * 60分钟 *60秒 * 1000毫秒 = 86400000毫秒

 

Date类的构造方法和成员方法

构造方法主要有:

Date()无参构造方法。用于获取当前系统的时间和日期

Date(Long time) 有参构造方法,用于得到自时间原点经历毫秒值所得到的时间

成员方法主要有:

getTime()方法,用于获取当前系统时间的毫秒值。

具体实现如下代码:

import java.util.Date;

public class Demo02Date {
    public static void main(String[] args) {

        demo01();
        demo03(demo02());

    }

    /*
    Date类的无参构造方法
    用于获取当前系统的时间和日期
     */
    public static void demo01(){
        Date date = new Date();
        System.out.println(date);
    }
    /*
    Long getTime()方法返回自时间原点到系统时间的毫秒值
    相当于Ststem.currentTimeMills()方法
     */
    public static long demo02(){
        Date date = new Date();
        long time = date.getTime();
        return time;
    }
    /*
    Date有参构造方法
    参数是一个毫秒值
    返回从时间原点经过毫秒值到达的时间
     */
    public static void demo03(Long time){
        Date date = new Date(time);
        System.out.println(date);
    }
}

结果如下:

 

 

DateFormat类

DateFormat是时间、日期格式化子类的抽象类。它有一个直接已知子类SimpleDateFormat类,一个父类Format类。

作用:1.格式化(日期->文本) 2.解析(文本->日期)

成员方法:

1. String format(Date date) 按照指定的模式,把Date日期格式化为符合标准的字符串

2. Date parse(String source) 把复合模式的字符串,解析为Date日期

DateFormat是一个抽象类,无法直接使用创建对象,应该使用子类。

java.text.SimpleDateFormat

构造方法

SimpleDateFormat(String pattern)

用给定的模式和默认语言环境的日期格式符号构造SimpleDateFormat

参数:String pattern  传递指定的模式

模式:区分大小写

y 年  M 月  d 日  H 时  m 分  s秒

模式写法:

yyyy-MM-dd HH:mm:ss

模式中的字母不能更改,连接模式的符号可以改变。

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Demo01DateFormat {
    public static void main(String[] args) throws ParseException {
        System.out.println("日期转换为文本:");
        demo01();

        System.out.println("===============");
        System.out.println("文本转换为日期:");
        demo02();
    }

    /*
    使用format方法将日渐转换为文本
     */
    public static void demo01(){
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date = new Date();
        String d = sdf.format(date);

        System.out.println(date);
        System.out.println(d);
    }

    /*
    使用parse方法解析时间日期类
    但是注意:如果字符串和构造方法的模式不一样,那么程序就会抛出此异常
    调用一个抛出了异常的方法,就必须处理这个异常
    两种方法:1.throws继续抛出这个异常
             2.try catch自己处理这个异常
     */
    public static void demo02() throws ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date = sdf.parse("2020-07-29 11:19:38");
        System.out.println(date);
    }
}

结果如下:

 

 

 

 

今天学习的内容非常实用,在开发C++程序的时候,很多时候用到获取系统时间,而Java中的Date类和DateFormat类很好的解决了此问题。

明天继续学习Calendar和System类

posted @ 2020-07-29 11:27  Gazikel  阅读(94)  评论(0编辑  收藏  举报