毫秒
public class MiliSecond {
public static void main(String[] args) {
System.out.println(System.currentTimeMillis()); //获取距离1970.1.1 00:00:00的毫秒数
// 中国在此时间为08:00:00
}
}
Date类的构造方法和成员方法
public class DateClass {
public static void main(String[] args) {
Date date01 = new Date(); //无参构造,
System.out.println(date01); //打印当前中国时间
Date date02 = new Date(0L); //有参构造,传入的参数为距离1970.1.1的毫秒数
System.out.println(date02); //打印出相距参数毫秒值得中国时间
long time = date01.getTime(); //获取该时间到1970.1.1所经过的毫秒值,与上面的得到日期相反
System.out.println(time);
}
}
DateFormat类和SimpleDateFormat
java.text.DateFormat是日期/时间格式化子类的抽象类
作用:
格式化(也就是日期=>文本)、解析(文本=>日期)
成员方法:
String format(Date date) 按照指定的模式,把Date日期格式化成为符合模式的字符串
Date parse(String source) 把符合模式的字符串,解析为Date日期
DateFormat是一个抽象类,无法直接创建对象使用,可以用DateFormat的子类
java.text.SimpleDateFormat extends DateFormat
构造方法:
SimpleDateFormat(String pattern) 用给定的模式和默认语言环境的日期格式符号构造 SimpleFormat。
参数:String pattern:传递指定的模式
常用的(区分大小写):
字母 | 表示意思 |
---|---|
y | 年 |
M | 月 |
d | 日 |
H | 时 |
m | 分 |
s | 秒 |
写对应的模式,会把模式替换为对应的日期和时间
“yyyy-MM-dd HH:mm:ss”
也可以把-还有:换成年月日时分秒(即模式中字母不能改变,连接模式的符号可以改变)
SimpleDateFormat类的format方法和parse方法
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class NewClass{
public static void main(String[] args) throws ParseException { //这里也需要抛出异常
method();
method01();
}
public static void method01() throws ParseException { //抛出异常
SimpleDateFormat sim01 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String s = "2021-05-10 15:13:57";
Date parse = sim01.parse(s);
System.out.println(parse);
}
public static void method() {
SimpleDateFormat sim = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
String format = sim.format(date);
System.out.println(date);
System.out.println(format);
}
}
其中可以用Alt+Insert抛出异常或者try来防止报错。
练习
使用日期时间相关的API,计算出一个人已经出生了多少天
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class Practice {
public static void main(String[] args) throws ParseException {
method();
}
public static void method() throws ParseException {
Scanner sc = new Scanner(System.in);
System.out.println("请输入出生日期,格式为yyyy-MM-dd");
String str = sc.next();
Date date = new Date();
long time = date.getTime();
SimpleDateFormat sim = new SimpleDateFormat("yyyy-MM-dd");
Date parse = sim.parse(str);
long time1 = parse.getTime();
long time2 = time - time1;
long num = 24 * 60 * 60 * 1000;
long day = time2 / num;
System.out.println("距离你出生日期有" + day + "天。");
}
}