Java之Date类和SimpleDateFormat、calendar

一、Date类

1.什么是Date类???

java.util.Date
在util包下 ,Date类表示日期

Java底层使用long类型表示日期
long类型的值表示的是
是基于1970年1月1日0时0分0秒至今的差值
1970年1月1日0时0分0秒也叫计算机纪元时间

2.Date类有哪五种常用方法???
注意:Date类中有多个构造方法都是过时的
不建议使用

已过时,不建议使用的方法:
getYear()
getMonth()
getDate()
getHours()等

创建date对象,无参构造默认创建此时此刻时间
Date date = new Date();

方法一:getTime() 获取
从1970年1月1日 0时0分0秒到此刻毫秒值

System.out.println(date.getTime());

方法二:setTime() 设置毫秒值

date.setTime(6666);
System.out.println(date);

方法三:after()
判断某个日期是否在指定日期之后

Date d1 = new Date(222);
Date d2 = new Date(111);
System.out.println(d1.after(d2));

方法四:before()
判断某个日期是否在指定日期之前

System.out.println(d1.before(d2));

方法五:a.compareTo(b)
对两个日期进行比较
如果a时间在b之后,则返回1
如果a时间在b之前,则返回-1
如果a==b,则返回0

Date d3 = new Date(111);
System.out.println(d1.compareTo(d2));

public class Test{

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

	public static void testDate() {
		
		Date today = new Date();
		System.out.println("表示当前时间结果是 : "+today);
		System.out.println("毫秒数结果是 : "+today.getTime()); 
		Date date2 = new Date(0);
		System.out.println("new Date(0)结果是 : "+date2); 		
		Date date = new Date();
		// getYear()、getMonth()、getDate()、getHours()等,都已过时
		// getTime() 获取毫秒值
		System.out.println("getTime()结果是 :"+date.getTime());
		// setTime() 设置毫秒值:1970年纪元时间+参数值
		date.setTime(6666);
		System.out.println("date.setTime(6666)结果是 :"+date);
		// after() 判断某个日期是否在指定日期(1970年纪元时间+参数值)之后
		Date d1 = new Date(222);
		System.out.println("d1为纪元时间+100");
		Date d2 = new Date(111);
		System.out.println("d2为纪元时间+900");
		System.out.println("d1.after(d2)结果是 :"+d1.after(d2));
		// before() 判断某个日期是否在指定日期(1970年纪元时间+参数值)之前
		System.out.println("d1.before(d2)结果是 :"+d1.before(d2));		
		/*
		 * a.compareTo(b) 对两个日期进行比较
		 * 如果a>b,则返回1,如果a<b,则返回-1,如果a==b,则返回0
		 */
		Date d3 = new Date(111);
		System.out.println("d3为纪元时间+500");
		System.out.println("d1.compareTo(d2)结果是 :"+d1.compareTo(d2));
		System.out.println("d2.compareTo(d1)结果是 :"+d2.compareTo(d1));
		System.out.println("d2.compareTo(d3)结果是 :"+d2.compareTo(d3));
		
	}
}

二、SimpleDateFormat

1.SimpleDateFormat是对日期Date类对格式化和解析
2.两个操作
(1)格式化:日期—>字符串
(2)解析:格式化对逆过程,字符串—>日期

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
   public static void main(String[] args) throws ParseException {
        //实例化SimpleDateFormat
        SimpleDateFormat simpleDateFormat=new SimpleDateFormat();

        //格式化:日期--->字符串
        Date date1=new Date();
        System.out.println(date1);
        String format=simpleDateFormat.format(date1);
        System.out.println(format);

        //解析:格式化对逆过程,字符串--->日期
        SimpleDateFormat simpleDateFormat1=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
        //格式化
        String format1=simpleDateFormat1.format(date1);
        System.out.println(format1);
        //解析:要求字符串必须是符合SimpleDateFormat识别的格式(通过构造器参数来体现),否则会抛异常
        Date date2=simpleDateFormat1.parse("2020-05-29 11:48:27");
        System.out.println(date2);
    }

3.举例:将字符串"2020-05-29"转换为"java.sql.Date"

		import java.text.ParseException;
		import java.text.SimpleDateFormat;
		import java.util.Date;
		String birth="2020-05-29";
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
        Date date=sdf.parse(birth);
        java.sql.Date birthDate=new java.sql.Date(date.getTime());
        System.out.println(birthDate);

三、calendar类

1.Calendar类叫:日历类,是方便我们操作日期的,它里面的功能大多数是用来替代java.util.Date类的功能的

2.

  • Calendar类可以理解为是工具类,因为它是一个抽象类,所有外界无法通过new的方式创建类对象

  • 问:如何创建Calendar类的对象呢

  • 答:通过Calendar#getInstance()方法实现

实例

public class Test {
    public static void main(String[] args) {
        Calendar C = Calendar.getInstance();
        System.out.println(C.getTime());
    }
}

3.成员变量
public static final int YEAR:表示年份
public static final int MONT:表示月份
public static final int DATE:表示年终的某一天
public static final int DAYOFMONTH:表示月中的某一天
public static final int DAYOFWEEK:表示星期中的某一天

4.成员方法
public static Calendar getInstance():创建Calendar类型的子类对象
public int get(int field):根据日历字段,获取其对应的值
public void set(int year, int month, int day):设置时间为指定的年,月,日
public void add(int field, int count):修改指定的时间为指定的偏移量
例如:往前推2天,推3个月,往后推2年

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值