DateFormat类简介,
DateFormat是一个抽象类,不能直接使用,所以需要常用的子类`java.text.SimpleDateFormat`。这个类需要一个模式(格式)来指定格式化或解析的标准。他的主要作用就是允许进行格式化(也就是日期 -> 文本)、解析(文本-> 日期)和标准化、。
注意:
- 因为他是个抽象类,所以无法直接使用,必须使用实现它的子类。
- java.text.SimpleDateFormat extends DateFormat
构造方法:
- public SimpleDateFormat(String pattern) :用给定的模式和默认语言环境的日期格式符号构造SimpleDateFormat。参数pattern是一个字符串,代表日期时间的自定义格式。
-
Y 年
M 月
d 日
H 时
m 分
ss 秒
写对应的模式,会把模式替换为对应的格式:yyyy --MM --dd HH:mm:ss
注意:模式中的字母是不能修改的,连接符可以
常用方法
DateFormat类的常用方法有:
- public String format(Date date): 将Date对象格式化为字符串。
- public Date parse(String source):将字符串解析为Date对象。
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class DetaFormatTest { public static void main(String[] args) throws ParseException { demo1(); demo2(); } private static void demo2() throws ParseException { // 创建对象,构造方法指定模式 SimpleDateFormat data = new SimpleDateFormat("yyyy年MM月dd日HH小时:mm分ss秒"); // 按照指定模式解析成data对象,模式错误会报错 Date time = data.parse("2015年12月2日2小时:22分23秒"); System.out.println(time);//Wed Dec 02 02:22:23 CST 2015 System.out.println(time.getTime());//1448994143000 转化毫秒值 } private static void demo1() { // 创建对象,构造方法指定模式 SimpleDateFormat data = new SimpleDateFormat("yyyy年MM月dd日HH小时:mm分ss秒"); // 获取Date对象 Date time = new Date(); // format方法把指定模式输出 System.out.println("现在的时间是" + data.format(time));//现在的时间是2019年03月13日22小时:23分45秒 } }
需求:获取一个人活了多少天
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner; public class PersonDate { public static void main(String[] args) throws ParseException { // 获取他的生日是多少next()方法 Scanner s = new Scanner(System.in); System.out.println("请输入您的生日,格式yyyy年MM月DD日"); // 获取客户生日 String birthday = s.next(); // 解析按指定的模式解析成Data对象 SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月DD日"); // 解析指定模式的字符串,变成Date 对象 Date date = sdf.parse(birthday); //System.out.println(date); // data对象转化为毫秒值 long start = date.getTime(); //获取当前时间的毫秒值 long end = new Date().getTime(); //获取活了多少天 long time = (end-start); System.out.println("你已经活了这么多天了" +time/1000/60/60/24); } }