Date类、SimpleDateFormat类、Calendar抽象类

Date

Date date = new Date();
System.out.println(date);//Tue Jul 30 13:20:18 CST 2019

/*

星期
Monday 星期一
Tuesday 星期二
Wednesday 星期三
Thursday 星期四
Friday 星期五
Saturday 星期六
Sunday 星期天

月份
January 一月 
February 二月 
March 三月 
April 四月 
May 五月 
June 六月 
July 七月 
August 八月
September 九月
October 十月 
November 十一月 
December 十二月

*/
Date date1 = new Date();
Date date2 = new Date(0);
System.out.println(date1);	//没传参数,代表当前时间
System.out.println(date2);	//当参数时0,代表的也是1970/1/1 0:0:0,因为我们所在的时区时东八区,所以快了8小时

时间戳表示从1970-01-01 0:0:0 到现在的毫秒数

 

after(Date when)

判断指定日期是否在when之后

Date date = new Date();
Date date1 = new Date("2019/7/29");
System.out.println(date.after(date1));//true 判断date(date是当前时间)是否在date1之后
		

compareTo(Date date)

比较指定日期和date的时间戳的大小,大则返回1,小于返回-1,等于返回0

Date date = new Date();
Date date1 = new Date("2019/7/29");
System.out.println(date.compareTo(date1));//1

equals(Date date)

比较指定日期和date的时间戳的大小

Date date1 = new Date("2019/7/31 13:52:00");
Date date2 = new Date("2019/7/31 13:52:01");
System.out.println(date1.equals(date2));//false

getTime()

返回指定日期到1970年1月1号 0:0:0的毫秒数

Date date1 = new Date();
date1.setTime(1000);
System.out.println(date1.getTime());//1000

setTime(long l)

设置毫秒数l

Date date1 = new Date();
date1.setTime(1000);
System.out.println(date1);//Thu Jan 01 08:00:01 CST 1970

 

SimpleDateFormat

日期格式化:把Date里面包含的时间信息,按照指定格式打印出来

使用SimpleDateFormat构造方法格式化日期格式 “yyyy-MM-dd HH:mm:ss a”

Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss a");
String format = sdf.format(date);
System.out.println(format);//2019-07-30 16:29:47 下午

parse(String str)

将日期字符串转换为日期对象

String str = "2000-1-1 00:00:00";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
	Date date = sdf.parse(str);
	System.out.println(date);	//Sat Jan 01 00:00:00 CST 2000
} catch (ParseException e) {
	e.printStackTrace();
}

 

Calendar

日历类:它是抽象类,不能直接实例化对象,要调用getInstance(locale alocale)方法来获取使用默认时区和区域设置的日历。

时区参数:

用法实例

Calendar cal = Calendar.getInstance();
System.out.println(cal);
// 输出结果为:
java.util.GregorianCalendar[time=1564655982169,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2019,MONTH=7,WEEK_OF_YEAR=31,WEEK_OF_MONTH=1,DAY_OF_MONTH=1,DAY_OF_YEAR=213,DAY_OF_WEEK=5,DAY_OF_WEEK_IN_MONTH=1,AM_PM=1,HOUR=6,HOUR_OF_DAY=18,MINUTE=39,SECOND=42,MILLISECOND=169,ZONE_OFFSET=28800000,DST_OFFSET=0]

 

getTime()

Calendar的getTime()方法返回的是Date日期,而Date的getTime()方法返回的是时间戳

Calendar cal = Calendar.getInstance();
Date cal_date = cal.getTime();
System.out.println(cal_date);//结果为Thu Aug 01 18:49:00 CST 2019
		
Date date = new Date();
long time = date.getTime();
System.out.println(time);//结果为1564656540241

 

add(int field,int amount)

添加或减去指定的时间

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd E");
System.out.println(sdf.format(new Date()));//当前时间2019-08-01 星期四
Calendar cal = Calendar.getInstance();
		
//星期-1
cal.add(Calendar.DAY_OF_WEEK, -1);
System.out.println(sdf.format(cal.getTime()));//星期-1后的时间:2019-07-31 星期三
		
//日期+1
cal.add(Calendar.DAY_OF_MONTH, 1);
System.out.println(sdf.format(cal.getTime()));//日期+1后的时间2019-08-01 星期四
		
//月份-1
cal.add(Calendar.MONTH, -1);
System.out.println(sdf.format(cal.getTime()));//月份-1后的时间2019-07-01 星期一
		
//年份+1
cal.add(Calendar.YEAR, 1);
System.out.println(sdf.format(cal.getTime()));//年份+1后的时间2020-07-01 星期三

 

get(int field)

返回指定的时间字段

//当前时间2019-08-01 星期四
int year = cal.get(Calendar.YEAR);//返回当前时间的年份
System.out.println(year);//结果为2019
int month = cal.get(Calendar.MONTH);//返回当前时间的月份,0代表1月份,1代表2月份,以此类推
System.out.println(month);//结果为7
int year_day = cal.get(Calendar.DAY_OF_YEAR);//返回当前时间是一年中的第几天
System.out.println(year_day);//结果为213
int month_day = cal.get(Calendar.DAY_OF_MONTH);//返回当前时间是本月的第几天
System.out.println(month_day);//结果为1
int week_day = cal.get(Calendar.DAY_OF_WEEK);//返回当前时间是一周的星期几,每周的第一天代表星期日,最后一天代表星期六
System.out.println(week_day);//结果为5
int am_pm = cal.get(Calendar.AM_PM);//返回当前时间是上午还是下午,0代表上午,1代表下午
System.out.println(am_pm);//结果为1

 

set(int field,,int amount)

set(int year,int month, int day)

设置到指定的时间字段

//当前时间2019-08-01 星期四
cal.set(cal.YEAR, 2000);
System.out.println(cal.get(cal.YEAR));// 结果为2000
cal.set(2000, 01, 01);
System.out.println(cal.get(cal.YEAR) + "年" + cal.get(cal.MONTH) + "月" + cal.get(cal.DAY_OF_MONTH));// 结果为2000年1月1

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值