日期格式
毫秒值的概念和作用
毫秒值表示自1970年1月1日00:00:00GMT以来经过的毫秒数
Date用法
/**
* Date类的空指针构造方法:
* Date() 获取的就是当前系统的日期时间
*/
private static void data01(){
Date date = new Date();
System.out.println(date);//Sat Aug 14 10:34:52 CST 2021
}
/**
*Data类的带参构造方法:
* Date(long):传递毫秒值,把毫秒值转换成Date日期
*/
private static void data02(){
Date date = new Date(0L);
System.out.println(date);
Date date1 = new Date(5646546516515L);
System.out.println(date1);
}
/**
* 成员方法
* 把日期转成毫秒值
*/
private static void data03(){
Date date = new Date();
long time = date.getTime();
System.out.println(time);
}
DateFormat使用
使用DateFormat类中的方法parse,把文本解析为日期
使用步骤:
1.创建SimpleDateFormat对象,构造方法中传递指定的模式
2.调用SimpleDateFormat对象中的方法parse,把符合构造方法中模式的字符串,解析为Date日期
注意:
public Date parse(String source) throws ParseException
parse方法声明了一个异常叫ParseException
如果字符串和构造方法的模式不一样,那么程序就会抛出此异常
调用一个抛出了异常的方法,就必须的处理这个异常,要么throws继续抛出这个异常,要么try catch自己处理
public static void demo01(){
//创建SimpleDateFormat对象,构造方法中传递指定的模式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
String text = sdf.format(date);
System.out.println(date);
System.out.println(text);
}
public static void demo02(){
//调用SimpleDateFormat对象中的方法parse,把符合构造方法中模式的字符串,解析为Date日期
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
Date date = sdf.parse("2021-08-14 14:23:35");
System.out.println(date);
System.out.println(date.getTime());
}catch (Exception e){
System.out.println("内容格式不正确");
}
}
练习
计算一个人出生了多长时间
package day0814.dataDemo;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
/**
* @author 王旭阳
*/
public class Demo02 {
//程序入口
public static void main(String[] args) throws ParseException {
kaiShi();
}
//调用计算方法
public static void kaiShi() throws ParseException {
System.out.println("你出生了"+zhaun2(zhaun(scanner1())));
}
//1.输入出生的日期
public static String scanner1(){
Scanner scanner = new Scanner(System.in);
System.out.println("请输入出生年份");
String next = scanner.next();
System.out.println("请输入出生月份");
String next1 = scanner.next();
System.out.println("请输入出生日");
String next2 = scanner.next();
return next+"年"+next1+"月"+next2+"日";
}
//2.将出生日期转换成为毫秒值
public static long zhaun(String zhuan) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
return sdf.parse(zhuan).getTime();
}
//3.计算出生天数
public static long zhaun2(long a){
long l1 = (System.currentTimeMillis() - a) / 24 / 60 / 60 / 1000;
return l1;
}
}