1.2常⽤⽅法
public long getTime() :把⽇期对象转换成对应的时间毫秒值;
public void setTime(long time)把时间毫秒值转成日期对象
public class Demo{
public static void main(String[] arg){
Date date=new Date();
System.out.println(“当前时间:”+date);
long l=date.getTime();
System.out.println(“当前时间转成long:”+l);
date.setTime(l);
System.out.println(“long类型转成date:”+date);
}
/*
当前时间:Mon Jul 26 19:57:56 CST 2021
当前时间转成long:1627300676266
long类型转成date:Mon Jul 26 19:57:56 CST 2021
*/
}
java.text.DateFormat 是⽇期/时间格式化⼦类的抽象类,我们通过这个类可以帮我们完成⽇期
和⽂本之间的转换,也就是可以在Date对象与String对象之间进⾏来回转换。
1.格式化:按照指定的格式,从Date 对象转换成Date对象
2.解析 :按照指定的格式,从String 对象转成Date 对象
构造⽅法
由于DateFormat为抽象类,不能直接使⽤,所以需要常⽤的⼦类 java.text.SimpleDateFormat 。这个类需要⼀个模式(格式)来指定格式化或解析的标准。
构造⽅法为:
public SimpleDateFormat(String pattern) :⽤给定的模式和默认语⾔环境的⽇期格式符号构造SimpleDateFormat。
参数pattern是⼀个字符串,代表⽇期时间的⾃定义格式
格式规则
常⽤的格式规则为:
| 标识字母(区分大小写) | 含义 | 示例 |
| — | — | — |
| y | 年 | yyyy年-2021年;yy-21年 |
| M | 月 | MM⽉ - 01⽉;M⽉ - 1⽉ |
| d | ⽇ | dd⽇ - 06⽇;d⽇ - 6⽇ |
| H | 时 | HH:mm:ss - 12:46:33 |
| m | 分 | hh(a):mm:ss - 04(下午):47:34 |
| s | 秒 | a h时 - 下午12时 |
| E | 星期 | E - 星期⽇(Sun) |
| a | 下午 | a h时 - 下午12时 |
创建SimpleDateFormat对象的代码如:
import java.text.DateFormat;
import java.text.SimpleDateFormat;
public class Demo{
public static void mian(String[] arg){
DateFormat sdf=new SimpleDateFormat(“yyyy-MM-dd hh:mm:ss”);
}
}
常⽤⽅法 format parse
DateFormat类的常⽤⽅法有:
1.public String format(Date date) :将Date对象格式化为字符串。
2.public Date parse(String source) :将字符串解析为Date对象。
format方法
import java.text.SimpleDateFormat;
import java.util.Date;
public class Demo1 {
public static void main(String[] args) {
SimpleDateFormat sdf=new SimpleDateFormat(“yyyy-MM-dd E a hh:mm:ss”);
/*
format()将给定的 Date 格式化为日期/时间字符串,并将结果添加到给定的 StringBuffer。
parse()解析字符串的文本,生成 Date
*/
Date date=new Date();
System.out.println(date);
String str=sdf.format(date);
System.out.println(str);
}
/*Mon Jul 26 20:17:04 CST 2021
2021-07-26 周一 下午 08:17:04*/
}
parse
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/*
把String转换成Date对象
*/
public class Demo04DateFormatMethod {
public static void main(String[] args) throws ParseException {
DateFormat df = new SimpleDateFormat(“yyyy年MM⽉dd⽇”);
String str = “2021年12⽉11⽇”;
Date date = df.parse(str);
System.out.println(date); // Tue Dec 11 00:00:00 CST 2021
}
}
练习
使⽤⽇期时间相关的API,计算出⼀个⼈已经出⽣了多少天。
思路:
-
获取当前时间对应的毫秒值
-
获取⾃⼰出⽣⽇期对应的毫秒值
-
两个时间相减(当前时间– 出⽣⽇期)
代码实现:
public class Demo1 {
public static void main(String[] args) throws Exception {
System.out.println(“请输⼊出⽣⽇期 格式 yyyy-MM-dd”);
// 获取出⽣⽇期,键盘输⼊
String birthdayString = new Scanner(System.in).next();
// 将字符串⽇期,转成Date对象
// 创建SimpleDateFormat对象,写⽇期模式
SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd”);
// 调⽤⽅法parse,字符串转成⽇期对象
Date birthdayDate = sdf.parse(birthdayString);
// 获取今天的⽇期对象
Date todayDate = new Date();
// 将两个⽇期转成毫秒值,Date类的⽅法getTime
long birthdaySecond = birthdayDate.getTime();
long todaySecond = todayDate.getTime();
long secone = todaySecond - birthdaySecond;
if (secone < 0) {
System.out.println(“还没出⽣呢”);
} else {
System.out.println(secone / 1000 / 60 / 60 / 24);
}
}
}
/*请输⼊出⽣⽇期 格式 yyyy-MM-dd
1999-12-13
7896
*/
}