Demo02Date.java
package Date;
import java.util.Date;
public class Demo02Date {
public static void main(String[] args) {
//1.构造方法Date,分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)。
Date date1 = new Date();
System.out.println(date1);//Fri Nov 12 20:13:28 CST 2021
//2.Date(long date)分配 Date 对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,
// 即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。
Date date2 = new Date(17779999L);
Date date3 = new Date(0L);
System.out.println(date2);//Thu Jan 01 12:56:19 CST 1970
System.out.println(date3);//Thu Jan 01 08:00:00 CST 1970
//3.getTime()
// 返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
Date date4 = new Date();
System.out.println(date4.getTime());//1636719470013
}
}
3.DateFormat类和SimpleFormat类
Demo01DateFormat.java
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Demo01DateFormat {
public static void main(String[] args) throws ParseException {
//1.使用DateFormat类中的format方法,把日期格式化为文本
//String format(Date date) 按照指定格式,把Date日期,格式化为符合模式的字符串
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
String format = simpleDateFormat.format(date);
System.out.println(date);//Sat Nov 13 10:43:05 CST 2021
System.out.println(format);//2021-11-13 10:43:05
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date parse = sdf.parse(format);
System.out.println(parse);
}
}
4.练习
DatePract.java
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
//使用日期相关的API,计算出一个人已经出生了多少天
public class DatePract {
public static void main(String[] args) throws ParseException {
Date dateNow = new Date();
System.out.println("现在时间是:" + dateNow);
Long dataNew = dateNow.getTime();
System.out.println("请输入你的出生日期:");
//String dateBorn = new Scanner(System.in).next("yyyy-MM-dd HH:mm:ss");
String dateBorn = new Scanner(System.in).next();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Long dateOld = sdf.parse(dateBorn).getTime();
int days = (int) ((dataNew - dateOld) / ( 24 * 60 * 60 * 1000));
System.out.println(days);//8799
}
}
5.Calendar类
Date的很多类已经不用了,常用Calendar类来代替
6.Calendar类常用的成员变量方法Demo02Calendar.java
package Calender;
import java.util.Calendar;
public class Demo02Calendar {
public static void main(String[] args) {
Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
System.out.println(year);
int month = c.get(Calendar.MONTH) + 1;//西方月份0-11,中国1-12
System.out.println(month);
int day = c.get(Calendar.DATE);//DAY_OF_MONTH一样效果
System.out.println(day);
c.set(Calendar.YEAR,2010);
System.out.println(c.get(Calendar.YEAR));//2010
//同时设置年月日,可以使用set的重载方法
//c.set(8888,8,8);
//3.-public abstract void add(int field, int amount):根据日历规则,为给定的日历字段添加或减去指定的时间量
c.add(Calendar.YEAR,+2);
System.out.println(c.get(Calendar.YEAR));//2012
c.add(Calendar.YEAR,-2);
System.out.println(c.get(Calendar.YEAR));//2010
//4.public Date getTime():返回一个表示此Calendar时间值(从历元到现在的毫秒偏移量)的Date对象
//日历对象转化为日期对象
System.out.println(c.getTime());//Sat Nov 13 19:14:04 CST 2010
}
}
//2021
//11
//13
7.时间日期相关类总结



