JDK中有两个Date类一个是sql的一个是util的这里是用util做的笔记
java.util.Date 类有两个构造方法:
一、:Date类:
Date date = new Date();//空参数返回当前系统时间
Date date = new Date(long data); //参数为long类型//将参数计算成 对应的现代时间表示 如:1970年1月1日00:00:00 GMT。
二、:DateFormat类:
是日期/时间格式化子类的抽象类,它继承与Format类 它的子类有
它以语言无关的方式格式化和分析日期或时间。
主要是用它的子类SimpleDateFormat:
SimpleDateFormat是一个具体的类,用于以区域设置敏感的方式格式化和解析日期。 它允许格式化(日期----》文本),解析(文本-----》日期)和归一化。
成员方法:
Format() //按照指定的模式,把date日期格式化为符合模式的字符串
parse()//把符合模式的字符串,解析为date日期
代码:
format()方法
package date;
import java.text.SimpleDateFormat;
import java.util.Date;//JDK 有两个Date包 util 和sql
public class DateClassFormat {
public static void main(String[] args) {
//1970年1月1日 是保存的英国格林威时间
// 3742767540068 中国属于东八区会把时间增加8个小时
System.out.println(System.currentTimeMillis());//获取1970年1月1日到现在经历多少毫秒
Date date = new Date();//空参数返回当前系统时间 Thu Jul 04 15:37:00 CST 2019
System.out.println(date);
System.out.println("==================================================1");
System.out.println(date.getTime());//获取1970年1月1日到现在经历了多少毫秒
System.out.println("==================================================2");
//创建 DateFormat抽象类的SimpleDateFormat实现类对象并且初始化构造函数
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
//使用format把日期格式转换成文本,
String Date1 = sdf.format((date));
System.out.println(Date1);//2019/7/4 下午5:43
System.out.println("==================================================3");
}
}
parse()
package date;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateClassParse {
public static void main(String[] args) throws ParseException {
demo();
}
//没有按照规则匹配的话就会抛出异常 如果没有 throws ParseException parse()方法会编译错误
public static void demo() throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
Date DateText= sdf.parse("2019年07月04日 18时09分30");
System.out.println(DateText);
}
}
计算一个人出生到现在一共过了多少天
package date;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
//使用Date API看出生到当前时间一共多少天
//1992年-06月-1日 09时:40分-:33秒
public class HowLong {
public static void main(String[] args) throws ParseException {
Date date = new Date();
// System.out.println(date);
//相当于是正则的匹配规则;
DateFormat sdf = new SimpleDateFormat("yyyy年-MM月-dd日 HH时:mm分:s秒");
//将出生年龄转化为毫秒
long longDate = sdf.parse("1997年-05月-10日 09时:40分:33秒").getTime();
//获取党建时间并且转化成毫米值
long currentDate = date.getTime();
//获取到出生日期 和当前日期之间的差
long reultDay = currentDate- longDate;
//运算获取天数
System.out.println(reultDay/1000/60/60/24);
}
}