Java常用类(2)--日期时间Date、Calendar相关类

文章目录



java.lang.System类

System类提供的public static long currentTimeMillis()用来返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差(时间戳)。(此方法适于计算时间差)

long time = System.currentTimeMillis();
System.out.println(time);


java.util.Date类

构造器:
Date():创建的对象可以获取本地当前时间
Date(long date):创建指定毫秒数的Date对象,相当于又将时间戳转换成String形式

常用方法
getTime():返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
toString():把此 Date 对象转换为以下形式的 String: dow mon dd hh:mm:ss zzz yyyy 其中: dow 是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat),zzz是时间标准。

import java.util.Date;

public class DataTest {
    public static void main(String[] args) {
        Date date = new Date();
        System.out.println(date.toString());
        System.out.println(date); //等同于toString()方法
        System.out.println(date.getTime());
    }
}


java.sql.Date类

是java.util.Date类的子类,对应着数据库中的日期类型的变量。

构造器:java.sql.Date(时间戳)

常用方法:同上

java.sql.Date与java.util.Date转换,可以通过多态和getTime()方法

import java.util.Date;

public class DataTest {
    public static void main(String[] args) {
        Date date = new Date();
        java.sql.Date sqlDate = new java.sql.Date(date.getTime());
        System.out.println(sqlDate);
    }
}


java.text.SimpleDateFormat类

Date类的API不易于国际化,大部分被废弃了,java.text.SimpleDateFormat类是一个不与语言环境有关的方式来格式化和解析日期的具体类。其允许进行①格式化:日期—>字符串、②解析:字符串—>日期。

格式化:
1.实例化
①SimpleDateFormat() :默认的模式和语言环境创建对象
②SimpleDateFormat(String pattern):该构造方法可以用参数pattern指定的格式创建一个对象
2.格式化
实例化对象调用 String format(Date date)方法格式化时间对象

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

public class SimpleTest {
    public static void main(String[] args) {
        SimpleDateFormat sdf = new SimpleDateFormat(); //无参默认模式实例化
        Date date = new Date(); 
        String format = sdf.format(date); //格式化
        System.out.println(format);
    }
}

Java常用类(2)--日期时间Date、Calendar相关类

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

public class SimpleTest {
    public static void main(String[] args) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd  hh:mm:ss"); //带参指定格式实例化
        Date date = new Date();
        String format = sdf.format(date); //格式化
        System.out.println(format);
    }
}

Java常用类(2)--日期时间Date、Calendar相关类
关于指定格式:
Java常用类(2)--日期时间Date、Calendar相关类
Java常用类(2)--日期时间Date、Calendar相关类
解析(格式化逆过程):
Date parse(String source):依据格式解析字符串,以生成一个日期(注意格式的匹配对应,否则抛异常)

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

public class SimpleTest {
    public static void main(String[] args) throws ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd  hh:mm:ss"); //带参指定格式实例化
        Date parse = sdf.parse("2020-12-20  22:03:19");
        System.out.println(parse);
    }
}

Java常用类(2)--日期时间Date、Calendar相关类



java.util.Calendar(日历)类

这是一个抽象(abstract)类,主用用于完成日期字段之间相互操作的功能。

实例化:
①使用Calendar.getInstance()该静态方法
②调用它的子类GregorianCalendar的构造器

常用方法:

import java.util.Calendar;
import java.util.Date;

public class CalendarTest {
    public static void main(String[] args) {
        Calendar instance = Calendar.getInstance();

        //get():int get(int field)
        int ofMouth = instance.get(Calendar.DAY_OF_MONTH);
        System.out.println(ofMouth);
        int ofYear = instance.get(Calendar.DAY_OF_YEAR);
        System.out.println(ofYear);

        //set():void set(int field,int value)
        instance.set(Calendar.DAY_OF_MONTH,9);
        System.out.println(instance.get(Calendar.DAY_OF_MONTH));

        //add:void add(int field,int amount)
        instance.add(Calendar.DAY_OF_MONTH,-2);
        System.out.println(instance.get(Calendar.DAY_OF_MONTH));

        //getTime:final Date getTime() 将日历类型转换为Date类型
        Date time = instance.getTime();
        System.out.println(time);

        //setTime:final void setTime(Date date) 将Date类型转换为日历类型
        instance.setTime(new Date());
        System.out.println("********" + instance.getTime());

    }
}

Java常用类(2)--日期时间Date、Calendar相关类
一个Calendar的实例是系统时间的抽象表示,通过get(int field)方法来取得想要的时间信息。比如YEAR、MONTH、DAY_OF_WEEK、HOUR_OF_DAY 、MINUTE、SECOND。



未完待续
上一篇:java获取Timestamp类型的当前系统时间


下一篇:获取当前时间的几种方法整理(Java)