深入理解JAVA日期日历类的使用

(一)日期类(Data类)

(1.1)使用无参数构造方法

使用Date类的无参构造函数方法创建的对象可以获取本机的当前日历和时间,例如:

Date nowTime=new Date();

nowTime对象的实体中含有的日期和时间就是创建nowTime对象时本机计算机的日期和时间。

(1.2)使用带参数的构造方法

计算机系统将其自身的时间设置在1970年1月1日0时,可以根据这个时间使用Date的带参数的构造方法 Date(long time)来创建一个Date对象,例如:

Date data1=new Date(2000);
Datee data2=new Date(-1000);

其中的参数取正数表示计算机公元后的时间,取负数表示计算机公元前的时间,1000表示1000毫秒。

(1.3)代码实现

import java.util.Date;
public class text1
{
 public static void main(String[] args) 
 {
  Date nowTime=new Date();//获取当前计算机时间
  System.out.println(nowTime);
  Date a=new Date (1000);//获取计算机公元1000毫秒后的时间
  System.out.println(a);
  System.out.println(a.getTime());//以毫秒值返回系统时间
  Date a1=new Date(-1000);//获取计算机公元1000毫秒前的时间
  System.out.println(a1);
  System.out.println(a1.after(a));//当a1大于a返回true,反之返回false
 }
}

运行结果如下
在这里插入图片描述

(二)日历类(Calendar类)

(2.1)日历类概述

Calendar类是一个抽象类,为我们提供了日期计算的相关功能,比如年、月、日、时、分、秒的展示和计算。

注意月份的表示,一月是0,二月是1。

(2.1)代码实现

import java.util.*;
public class text1 
{
 public static void main(String []args) {
  Calendar today = Calendar.getInstance();//获取Calendar对象,该对象储存当前的系统时间
  System.out.print("今天是:"+today.get(Calendar.YEAR)+"年");
  System.out.print(today.get(Calendar.MONTH)+1+"月");//注意月的值从0开始,这里取出的值是7,实际上是8月,所以要加上1
  System.out.println(today.get(Calendar.DATE)+"日");
  System.out.print(today.get(Calendar.HOUR_OF_DAY)+"时");
  System.out.print(today.get(Calendar.MINUTE)+"分");
  System.out.print(today.get(Calendar.SECOND)+"秒");
  System.out.println("\t"+"(下午"+today.get(Calendar.HOUR)+"时)");
  System.out.println("这个星期的第"+today.get(Calendar.DAY_OF_WEEK)+"天"+"(星期三)");
  System.out.println("这个月的第"+today.get(Calendar.DAY_OF_MONTH)+"天");
  System.out.println("这一年的第"+today.get(Calendar.DAY_OF_YEAR)+"天");
  int a = 12;
  today.add(Calendar.DATE, a);
  System.out.print("再过"+a+"天是:"+today.get(Calendar.YEAR)+"年");
  System.out.print(today.get(Calendar.MONTH)+1+"月");
  System.out.println(today.get(Calendar.DATE)+"日");
  today.set(2018,8,17);
  System.out.print(today.get(Calendar.YEAR)+"年的七夕是:");
System.out.println(today.get(Calendar.MONTH)+"月"+today.get(Calendar.DATE)+"日");
 }
}

运行结果如下:
在这里插入图片描述

(三)日期的格式化

add方法,在原日期上增加年/月/日
set方法,直接设置年/月/日

扫描二维码关注公众号,回复: 11304073 查看本文章

(3.1)日期格式化表

在这里插入图片描述

(3.2)日期转字符串

import java.util.*;
import java.text.SimpleDateFormat;
public class text1 {
 public static void main(String[] args) {
  SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS" );
        Date d= new Date();
        String str = sdf.format(d);
        System.out.println("通过 yyyy-MM-dd HH:mm:ss SSS 格式化后的输出: "+str);
         
        SimpleDateFormat sdf1 =new SimpleDateFormat("yyyy-MM-dd" );
        Date d1= new Date();
        String str1 = sdf1.format(d1);
        System.out.println("通过 yyyy-MM-dd 格式化后的输出: "+str1);
 }
}

运行结果如下
在这里插入图片描述

(3.3)字符串转日期

import java.util.*;
import java.text.ParseException;
import java.text.SimpleDateFormat;
public class text1 {
 public static void main(String[] args) {
  SimpleDateFormat sdf =new SimpleDateFormat("yyyy/MM/dd HH:mm:ss" );  
        String str = "2020/6/16 17:12:12";  
        try {
            Date d = sdf.parse(str);
            System.out.printf("字符串 %s 通过格式  yyyy/MM/dd HH:mm:ss %n转换为日期对象: %s",str,d.toString());
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
 }
}

运行代码如下:
在这里插入图片描述

(3.4)日期对象和时间对象的转化

 Calendar calendar = Calendar.getInstance();//日历类的实例化
 calendar.set(year, month - 1, day);//设置日历时间,月份必须减一
 Date date = calendar.getTime(); // 从一个 Calendar 对象中获取 Date 对象

猜你喜欢

转载自blog.csdn.net/aabb12345687/article/details/106789479