目录
前言
一、简单的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);
}
}
运行结果如下图所示
可以发现日期已经输出,但是这个格式缺不符合国人的审美,所以下面我将会讲解到如何使它变得对我们友好,但是现在先让我们看一下如何将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类型的毫秒数
}
}
输出结果如下所示
接下来认识一下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));//毫秒
}
}
运行结果如下
二、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()));
}
}
运行结果如下
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类型
}
}
运行结果如下
总结
以上就是今天要讲的内容,本文仅仅简单介绍了一些常用的Java时间的使用,希望能够帮助到大家