1.日期的获取
Date date=new Date();
DateFormat dt=DateFormat.getDateTimeInstance();
//将时间打印成本地格式
System.out.println(dt.format(date));
//简便的写法
String datetime=DateFormat.getDateTimeInstance().format(date);
System.out.println(datetime);
运行结果:
2.日期格式化
DateFormat df=new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date=new Date();
String s=df.format(date);
System.out.println(s);
运行结果:
注意:
上边的yyyy-MM-dd为指定格式,指定格式的具体规则我们可参照SimpleDateFormat类的说明,该规则是在一个字符串中,会将 以下字母替换成对应时间组成部分,剩余内容原样输出:
- 当出现
y
时,会将y替换成年
- 当出现
M
时,会将M替换成月
- 当出现
d
时,会将d替换成日
- 当出现
H
时,会将H替换成时
- 当出现
m
时,会将m替换成分
- 当出现
s
时,会将s替换成秒
3.日期的转换
String s="2019年6月24日 11:13:12";
DateFormat df=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
Date date=df.parse(s);
System.out.println(date.toLocaleString());
说明:将字符串解析生成一个日期。
- format方法,用来将Date对象转换成String
- parse方法,用来将String转换成Date(转换时,该String要符合指定格式,否则不能转换)。
- format、parse方法会抛出一个异常,只需要在main方法中抛出异常
public static void main(String[] args) throws ParseException
4.案例
求自己出生了多少天
代码示例:
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.text.ParseException;
import java.util.Date;
import java.util.Scanner;
public class demo2 {
public static void main(String[] args) throws ParseException {
Scanner sc=new Scanner(System.in);
System.out.println("请输入你的出生日期:格式(1998-1-1)");
String s=sc.next();
DateFormat df=new SimpleDateFormat("yyyy-MM-dd");
//把字符串转换为日期
Date date=df.parse(s);
//算出生的毫秒数
long time=date.getTime();
//当前时间的毫秒数
long currenttime=System.currentTimeMillis();
long days=(currenttime-time)/(60*60*24*1000);
System.out.println("您出生已经"+days+"了");
}
}
运行结果: