构造方法:public Date() public Date(long date) //把一个long类型的毫秒值转换成一个日期对象
成员方法:
public long getTime() 获取一个日期对象的毫米值
public void setTime(long time) 给一个日期对象设置上指定的毫秒值
演示:
import java.util.Date;
public class Test3 {
public static void main(String[] args) {
Date date = new Date();
System.out.println(date);//打印现在的时间Mon Nov 04 21:53:57 CST 2019
//Date-->long
long time = date.getTime();//返回这个对象距1970-01-01-00:00:00的毫秒数
System.out.println(time);//1572875691527
//long-->Date
date.setTime(1572875691527l);//把这个毫秒数赋给日期对象
System.out.println(date);//Mon Nov 04 21:54:51 CST 2019
Date date1 = new Date(1572875691527l);//Date类中的构造方法可以直接把毫秒数所指的日期赋给日期对象
System.out.println(date1);//Mon Nov 04 21:54:51 CST 2019
}
}
构造方法:public SimpleDateFormat():使用默认的模式来创建一个SimpleDateFormat对象 public SimpleDateFormat(String pattern):使用指定的模式(规则比如yyyy:MM:dd HH:mm:ss)来创建一个SimpleDateFormat对象
定义规则:
y----年
M----月
d----天
H----时
m----分
s----秒
成员方法:public String format(Date date): 把一个日期对象格式化成一个字符串 public Date parse(String dateStr): 把一个日期字符串解析成一个日期对象 注意要以指定格式解析
演示:
//如果我们要指定日期字符串的格式,就要在生成SimpleDateFormat时传入参数
SimpleDateFormat dateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//不传入日期格式将会使用默认格式
String s1 = dateFormat1.format(date2);
System.out.println(s1);//2019-11-05 11:07:06
Date parse = dateFormat1.parse("2019-11-05 11:07:06");
System.out.println(parse);//Tue Nov 05 11:07:06 CST 2019
演示:计算你出生到现在多少天了
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class Test4 {
public static void main(String[] args) throws ParseException {
//需求:算一下你来到这个世界多少天 ?
//先规定用户输入日期格式
//把输入的日期转换为毫秒,再把今天的日期转为毫秒,然后相减
Scanner sc = new Scanner(System.in);
System.out.println("输入你的生日,格式为xxxx-xx-xx");
String s = sc.nextLine();
String regex="[0-9]{4}-[0-9]{2}-[0-9]{2}";//使用正则表达式规范用户的输入
if (s.matches(regex)){
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date parse = dateFormat.parse(s);
long time = parse.getTime();//1970年到出生的时间
Date now = new Date();//记录现在的时间
long nowTime = now.getTime();
long day=(nowTime-time)/1000/60/60/24;
System.out.println(day);
}
else
System.out.println("输入的日期格式不正确");
}
}
演示任意一个2月有多少天:
import java.util.Calendar;
import java.util.Scanner;
public class Test2 {
public static void main(String[] args) {
/* A:
案例演示
需求:键盘录入任意一个年份,获取任意一年的二月有多少天*/
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个年份");
int year = scanner.nextInt();
Calendar calendar = Calendar.getInstance();//获取一个日历对象
calendar.set(year,2,1);//月数为0-11
calendar.add(Calendar.DAY_OF_MONTH,-1);//给日历添加或减去一个量
int day = calendar.get(Calendar.DAY_OF_MONTH);
System.out.println(day);
}
}