目录

前言

一、简单的Date和Calendar类

Date类

接下来认识一下Calendar类

二、DateFormat和SimpleDateFormat

1.DateFormat类

2.SimpleDateFormat类

总结




前言

今天在上培训课程中,指导老师要求我们写一个关于输入和输出时间的代码,由于上学期间没怎么写关于这方面的内容,所以导致有点陌生,所以借此机会来和大家一起学习一下。

一、简单的Date和Calendar类

Date类

Date类可以获取当前的系统日期,如下代码所示

public class DateDemo1 {
    public static void main(String[] args){
        Date date=new Date();
        System.out.println(date);
    }
}

运行结果如下图所示

AM java 日期 日期类java_System

可以发现日期已经输出,但是这个格式缺不符合国人的审美,所以下面我将会讲解到如何使它变得对我们友好,但是现在先让我们看一下如何将Date转换为1970年1月1日0点到目前时间所经历的毫秒数

import java.util.Date;

public class DateDemo1 {
    public static void main(String[] args){
        long cur=System.currentTimeMillis();//获取当前的时间(从1970年1月1日0点到现在的毫秒数)
        Date date=new Date(cur);//将long转换为Date,这是Date类的有参构造函数
        System.out.println(date);
        System.out.println(date.getTime());//getTime方法可以date对象转化为long类型的毫秒数
    }
}

输出结果如下所示

AM java 日期 日期类java_实例化_02

接下来认识一下Calendar类

Calendar类是一个抽象类,实际应用中需要调用它的常用子类GregorianCalendar类,由于Calendar在开发中输出时间代码量较大所以不常用,下面就举一个简单的例子来介绍一下吧

 运行结果如下

import java.util.Calendar;
import java.util.GregorianCalendar;

public class DateDemo1 {
    public static void main(String[] args){
        Calendar calendar=new GregorianCalendar();//实例化
        System.out.println("年:"+calendar.get(Calendar.YEAR));//年
        System.out.println("月:"+(calendar.get(Calendar.MONTH)+1));//注意这里的月份是从0开始的,所以要+1
        System.out.println("日:"+calendar.get(Calendar.DAY_OF_MONTH));//日
        System.out.println("时:"+calendar.get(Calendar.HOUR_OF_DAY));//时
        System.out.println("分:"+calendar.get(Calendar.MINUTE));//分
        System.out.println("秒:"+calendar.get(Calendar.SECOND));//秒
        System.out.println("毫秒:"+calendar.get(Calendar.MILLISECOND));//毫秒
    }
}

运行结果如下

AM java 日期 日期类java_java_03

 

二、DateFormat和SimpleDateFormat

1.DateFormat类

代DateFormat是一个抽象类,需要使用其中的静态方法来获取实例,例子如下

import java.util.Locale;

public class DateDemo1 {
    public static void main(String[] args){
        DateFormat df1=null;
        df1=DateFormat.getDateInstance(DateFormat.YEAR_FIELD,new Locale("zh","CN"));
        DateFormat df2=null;
        df2=DateFormat.getDateTimeInstance(DateFormat.YEAR_FIELD,DateFormat.ERA_FIELD,new Locale("zh","CN"));
        System.out.println(df1.format(new Date()));
        System.out.println(df2.format(new Date()));
    }
}

运行结果如下

 

AM java 日期 日期类java_实例化_04

 

2.SimpleDateFormat类

SimpleDateFormat不仅是DateFormat的子类,而且还是最常见的日期转换类,开发中经常要使用到,下面通过一个例子来学习其用法

import java.text.ParseException;
import java.text.SimpleDateFormat;

import java.util.Date;


public class DateDemo1 {
    public static void main(String[] args) throws ParseException {
        String strDate="2022-07-14 22:41:05.999"; //假设这是从网页端获取到的时间,一般都是String类型
        String pat1="yyyy-MM-dd HH:mm:ss.SSS";//定义第一个模板
        String pat2="yyyy年MM月dd日 HH时mm分ss秒SSS毫秒";//定义第二个模板
        SimpleDateFormat sdf1=new SimpleDateFormat(pat1);//实例化模板对象
        SimpleDateFormat sdf2=new SimpleDateFormat(pat2);//实例化对象
        Date date=sdf1.parse(strDate);//将String对象转换为Date对象,这是开发中经常使用的
        System.out.println(date);
        System.out.println(sdf2.format(date));//将Date对象按照指定格式转换为String类型

    }
}

运行结果如下

AM java 日期 日期类java_System_05


 

总结

以上就是今天要讲的内容,本文仅仅简单介绍了一些常用的Java时间的使用,希望能够帮助到大家