首页 > 文章列表 > Java常用类之日期相关类的使用方法

Java常用类之日期相关类的使用方法

java
124 2023-05-06

Java常用类之日期相关类如何使用

日期相关类

1.Date类

在标准Java类库中包含一个Date类,它的对象表示一个特定的瞬间,精确到毫秒。在网上商城下单时,在对报销单进行审核时,都需要获取当前的时间,通过Date类就可以完成。

例子:Date类的使用

package li.normalclass.date;

 

import java.util.Date;

 

public class TestDate {

    public static void main(String[] args) {

        //获取当前的时间 格式为 yyyyMMddhhmmss

        Date date = new Date();//相当于new Date(System.currentTimeMillis())

        //操作当前的时间

        System.out.println(date.toString());//Sat Aug 06 19:15:28 CST 2022

        System.out.println(date.toLocaleString());//2022-8-6 19:16:06

        System.out.println(System.currentTimeMillis());//计算从1970年1月1日 0:00:00到目前为止的毫秒数

        System.out.println(date.getYear());//122  =2022-1900

        System.out.println(date.getMonth());//7   0-11   现在是八月

        System.out.println(date.getDate());//6 日

        System.out.println(date.getDay());//6   当前为星期六   注:星期日为0

        System.out.println(date.getHours());//19    当前为19点

        System.out.println(date.getMinutes());//26  当前为26分

        System.out.println(date.getSeconds());//16  当前为16秒

        System.out.println(date.getTime());//1659785176358  计算从1970年1月1日 0:00:00到目前为止的毫秒数

 

        //获取当前的时间 格式为 yyyyMMdd

        java.sql.Date sdate = new java.sql.Date(System.currentTimeMillis());

        System.out.println(sdate.toString());//2022-08-06

 

        java.sql.Date sdate2 = java.sql.Date.valueOf("1896-9-10");

        System.out.println(sdate2.toString());//1896-09-10

 

    }

}

查看API文档大家可以看到其实Date类中的很多方法已经过时了。JDK1.1之前的Date包含了日期操作、字符串转化为对象等操作。经过JDK1.1之后,日期操作类一般使用Calendar类,而字符串的转化 使用DateFormat类。

2.DateFormat类

Format:格式

DateFormat是一个抽象类,一般使用它的子类SimpleDateFormat类来实现。主要作用就是把时间对象转化为指定格式的字符串。反之,就是把指定格式的字符串转化为时间对象。

字符串----->日期

日期----->字符串

例子:

package li.normalclass.date;

 

import java.text.*;

import java.util.Date;

 

/**

 * 主要操作:

 *   DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//指定识别的格式

 *

 *   Date date = sdf.parse(strdate);//将字符串转换成日期

 *

 *   String strdate2 = sdf.format(date);//将日期转换成字符串

 */

public class TestDateFormat {

    public static void main(String[] args) throws ParseException {

        String strdate = "1999-12-23 12:12:12";//字符串

 

        //String---->Date

        //DateFormat是抽象类,要实例化只能引用它的子类SimpleDateFormat

        DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//指定识别的格式

        Date date = sdf.parse(strdate);//将字符串转换成日期

 

        String strdate2 = sdf.format(date);//将日期转换成字符串

        System.out.println(strdate2);

        

    }

}

3.Calendar类

Calendar:日历

例子:

package li.normalclass.date;

 

import java.util.Calendar;

import java.util.GregorianCalendar;

 

public class TestCalendar {

    public static void main(String[] args) {

        //获取当前的时间

        Calendar cal = new GregorianCalendar();

        // 输出当前的时间

        System.out.println(cal);

        //java.util.GregorianCalendar[time=1659791839017,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=31,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2022,MONTH=7,WEEK_OF_YEAR=32,WEEK_OF_MONTH=1,DAY_OF_MONTH=6,DAY_OF_YEAR=218,DAY_OF_WEEK=7,DAY_OF_WEEK_IN_MONTH=1,AM_PM=1,HOUR=9,HOUR_OF_DAY=21,MINUTE=17,SECOND=19,MILLISECOND=17,ZONE_OFFSET=28800000,DST_OFFSET=0]

 

        System.out.println(cal.get(Calendar.YEAR));//2022

        System.out.println(cal.get(Calendar.MONTH));//7   0~11  7代表8月

        System.out.println(cal.get(Calendar.DATE));//6   代表6号

        System.out.println(cal.get(Calendar.DAY_OF_WEEK));//7  代表周六  从周日为1开始计算一周

 

        //改变时间

        cal.set(Calendar.DATE,1);//直接指定日期  1号

        cal.set(Calendar.MONTH,1);//直接指定月数  2月

        cal.add(Calendar.DATE,2);//在设置的日期上再加上两天

        System.out.println(cal.get(Calendar.YEAR));//2022 --  22年

        System.out.println(cal.get(Calendar.MONTH));//1 --  2月

        System.out.println(cal.get(Calendar.DATE));//3 --  3号

        System.out.println(cal.get(Calendar.DAY_OF_WEEK));//5 -- 周四

        System.out.println(cal.getActualMaximum(Calendar.DATE));//28 -- 指定月一共有多少天

    }

 

}