Java学习笔记22(Date类、DateFormat类)

Date,时间和日期类,这里讲util包中的而不是sql包中的

Date:表示特定的时间瞬间,精确到毫秒(1000毫秒=1秒)

时间和日期的操作都基于毫秒值

时间原点:1970年1月1日,0时0分0秒,对应毫秒值为0

得到当前时间的毫秒值:

public class DateDemo {
    public static void main(String[] args) {
        long l = System.currentTimeMillis();
        //获取当前日期的毫秒值
        System.out.println(l);
        //1515639742854
    }
}

Date类的构造方法:

package demo;

import java.util.Date;

public class DateDemo {
    public static void main(String[] args) {
        function1();
        function2();
    }
    public static void function1(){
        Date date = new Date();
        System.out.println(date);
        //输出:Thu Jan 11 11:09:41 CST 2018
    }
    public static void function2(){
        Date date = new Date(123456);
        System.out.println(date);
        //输出:Thu Jan 01 08:02:03 CST 1970
    }
}

Date类的方法:

package demo;

import java.util.Date;

public class DateDemo {
    public static void main(String[] args) {
        function1();
        function2();
    }
    public static void function1(){
        //日期转毫秒
        Date date = new Date();
        long time = date.getTime();
        System.out.println(time);
        //1515642454307
    }
    public static void function2(){
        //毫秒转日期
        Date date = new Date();
        System.out.println(date);
        //Thu Jan 11 11:47:34 CST 2018
        
        date.setTime(123123);
        System.out.println(date);
        //Thu Jan 01 08:02:03 CST 1970
    }
}

我们发现Date类得到的日期格式不是我们所习惯的,

所以这里有一个DateFormat类提供格式化日期功能:

DateFormat是一个抽象类,主要使用它的子类SimpleDateFormat类

示例:

package demo;

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

//对日期格式化
public class SimpleDateFormatDemo {
    public static void main(String[] args) {
        function();
    }
    
    public static void function(){
        DateFormat date = new SimpleDateFormat("yyyy年MM月dd日HH点mm分钟ss秒");
        String date1 = date.format(new Date());
        System.out.println(date1);
        //输出:2018年01月11日12点01分钟30秒
    }
}

还可以将字符串转换成日期:

示例:

package demo;

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

//对日期格式化
public class SimpleDateFormatDemo {
    public static void main(String[] args) throws ParseException {
        function();
    }

    public static void function() throws ParseException {
        // 这里有异常,后面介绍
        DateFormat date1 = new SimpleDateFormat("yyyy-MM-dd");
        // 必须是标准格式的字符串
        Date date2 = date1.parse("2017-11-25");
        System.out.println(date2);
        // 输出:Sat Nov 25 00:00:00 CST 2017
    }
}

在实际开发中,不会让用户自行输入日期,因为存在格式错误的风险

通常做一个日期控件供用户选择,而不是让用户输入

原文地址:https://www.cnblogs.com/xuyiqing/p/8267414.html