日期与时间
◆Date
◆SimpleDateFormat
◆Calendar
◆Date
Date类概述:
- Date类的对象在java中代表的是当前所在系统的此刻日期时间。
案例:
请计算出当前时间往后走1小时121秒之后的时间是多少。
时间毫秒值->日期对象
案例代码:
package com.itheima.d1_date;
import java.util.Date;
public class DateDemo1 {
public static void main(String[] args) {
//1 当前时间 方式1
Date date = new Date();
System.out.println("创建的日期对象:");
System.out.println(date);// 当前日期与时间
//将日期转化为毫秒数
System.out.println("Date对象的getTime方法:");
System.out.println(date.getTime());
//方式2
long time = System.currentTimeMillis();
System.out.println("调用的System.currentTimeMillis():");
System.out.println(time);
//将毫秒数转化成日期
System.out.println("将毫秒数转化成日期:");
Date time2 = new Date(time); //或者Date time2 = new Date() time2.setTime(time);
System.out.println(time2);
//以上两种方式返回的是毫秒数,方式2更优,不用创建对象
}
}
输出结果:
创建的日期对象:
Sat Apr 09 23:56:29 CST 2022
Date对象的getTime方法:
1649519789440
调用的System.currentTimeMillis():
1649519789457
将毫秒数转化成日期:
Sat Apr 09 23:56:29 CST 2022
小结:
1、日期对象如何创建,如何获取时间毫秒值?
- Datedate new Date();
- Long time date.getTime();
2、时间毫秒值怎么恢复成日期对象
- Date d=new Date(time);
- d.setTime(time);
◆SimpleDateFormat
SimpleDateFormat类作用:
- 可以对Date对象或时间毫秒值格式化成我们喜欢的时间形式。
- 也可以把字符串的时间形式解析成日期对象。
SimpleDateFormat解析字符串时间成为日期对象:
- 解析方法 : public Date parse(String source)
- 说 明 : 从给定字符串的开始解析文本以生成日期
案例
●请计算出2021年08月06日11点11分11秒,往后走2天14小时49分06秒后的时间是多少。
package com.d1_date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* 案例:
*/
public class SimpleDateFormatDemo1 {
public static void main(String[] args) throws ParseException {
//1定义一个字符串存储时间
String str = "2021年08月06日 11:11:11";
//2字符串中的时间格式
SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
//3将字符串类型日期转化为Date类型日期
Date date = format.parse(str);
//4将Date类型日期转化为毫秒数 + 2天14小时49分06秒
long time = date.getTime() + (2L*24*60*60 + 14*60*60 + 49*60 + 6) * 1000;
//5将毫秒数转化为Date类型日期
System.out.println(format.format(time));
}
}
//输出结果:2021年08月09日 02:00:17
小结:
- SimleDateFormat可以格式化哪些时间形式?
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String rs1 = sdf.format(date);
String rs2 = sdf.format(time);
- SimpleDateFormat如何进行字符串时间的解析的?
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date d = sdf.parse(("2021-08-04 11:11:11");
◆Calendar![](https://i-blog.csdnimg.cn/blog_migrate/8457016dc96bd4425e432b0ea2e6290c.png)
代码示例:
public class CalendarDemo01{
public static void main(String[] args){
//1、拿到系统此刻日历对象
Calendar cal Calendar.getInstance();
System.out.println(cal);
//2、获取日历的信息:public int get(int field):取日期中的某个字段信息。
int year cal.get(Calendar.YEAR);
System.out.println(year);
int mm = cal.get(Calendar.MONTH)+1;
System.out.println(mm);
int days = cal.get(Calendar.DAY_OF_YEAR);
System.out.println(days);
//3、public void set(int field,int valve):修改日历的某个字段信息。
//4.public void add(int field,int amount):为某个字段增加/减少指定的值
//1请问64天后是什么时间
cal.add(Calendar.DAY_OF_YEAR ,amount:64);
cal.add(Calendar.MINUTE,amount:59);
//5.public final Date getTime():拿到此刻日期对象。
Date d = cal.getTime();
System.out.println(d);
//6.public Long getTimeInMillis():拿到此刻时间毫秒值
long time = cal.getTimeInMillis();
System.out.println(time);
}
}