Java基础:日期和时间

Date

构造方法

Date date1 = new Date();
Date date2 = new Date(long l);
Date date3 = new Date(int year, year month, int day);

其中第三种已经过时了。

Date date1 = new Date();
Date date2 = new Date(2000, 11, 20);
Date date6 = new Date(60935385600000L);

//值分别是
//Thu Jun 22 10:58:45 CST 2017
//Thu Dec 20 00:00:00 CST 3900
//Thu Dec 20 00:00:00 CST 3900

常用方法

before(Date date) + after(Date date)

日期是不是在参数前,返回boolean

boolean before = date1.before(date2);// true
boolean after = date1.after(date2);// false

clone()

复制日期

Date date3 = (Date) date1.clone()

date1date3是相等的。

compate(Date date)

比较2个日期,返回int。
a.compateTo(b)若a在b前,返回负数;若a在b后,返回整数;若相等,返回0;正负数一般是-1,1。

int compareTo1 = date1.compareTo(date2);// -1
int compareTo2 = date1.compareTo(date3);// 0
int compareTo3 = date1.compareTo(date4);// 1

equal(Date date)

比较日期是否相等,返回boolean。

boolean equals1 = date1.equals(date2);// false
boolean equals2 = date1.equals(date3);// true

Date 和long之间的转换

Date转long

long time1 = date1.getTime();
long time2 = date2.getTime();

long转Date

Date date5 = new Date(time1);

SimpleDateFormat

格式化日期的类。

日期和时间模式

这里写图片描述

构造方法

SimpleDateFormat sdf1 = new SimpleDateFormat();
SimpleDateFormat sdf1 = new SimpleDateFormat(Strign pattern);

pattern一般有

"YYYY-mm-dd HH:mm:ss"

常用方法

格式化日期

将Date格式化为我们需要的样式String,将String类型的日期转成Date,需要用到2个方法

format(date1);
parse(String);

format():Date转换成String类型的日期

SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String format1 = sdf1.format(date1);// 2017-06-22 13:54:11

String类型的日期转换成Date

SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date parse1 = sdf1.parse("2017-06-22 11:59:40");

printf()

采用printf()格式化日期,已%t开始,%n表示换行
这里写图片描述

System.out.printf("%tc%n", date1); // 星期四 六月 22 14:38:08 CST 2017
System.out.printf("%tF%n", date1);// 2017-06-22
System.out.printf("%tD%n", date1);// 06/22/17
System.out.printf("%tr%n", date1);// 02:41:40 下午
System.out.printf("%tT%n", date1);// 14:41:40
System.out.printf("%tR%n", date1);// 14:41

sleep()

让线程休眠,可以计算耗时

int sum = 0;
long time5 = System.currentTimeMillis();
try {
    Thread.sleep(3000);
} catch (InterruptedException e) {
    e.printStackTrace();
}
long time6 = System.currentTimeMillis();
System.out.println("耗时:" + (time6 - time5));

Calendar

日历,可以和方便的设置日期和时间,获取年月日等数据。
Calendar是个抽象类

构造方法

Calendar calendar = Calendar.getInstance();

常用方方法

设置日期和时间

月份是从0-11,也就是说0是一月;11是十二月。

calendar.setTime(date1);
calendar.setTimeInMillis(1234567890l);
calendar.set(2008, 8, 8, 8, 8,8);//9月
calendar.set(2008, 8, 8);

也可以值设置当个字段

calendar.set(Calendar.YEAR, 2008);
calendar.set(Calendar.MONTH, 8);
calendar.set(Calendar.DAY_OF_MONTH, 8);
calendar.set(Calendar.HOUR_OF_DAY, 8);
calendar.set(Calendar.MINUTE, 8);
calendar.set(Calendar.SECOND, 8);

add()和get()

add()某个字段加数字,可以是负数。正数表示日期加,负数表示日期减。
月份提前2个月

calendar.add(Calendar.DAY_OF_MONTH, -2);

获取年份

int year = calendar.get(Calendar.YEAR);

获取Date

Date date = calendar.getTime();

GregorianCalendar

是Calendar的子类

GregorianCalendar gregorianCalendar = new GregorianCalendar();
Date time = gregorianCalendar.getTime();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值