Date和String相互转换(重点)
**桥梁**:
SimpleDateFormat
**作用:**
SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。
SimpleDateFormat类的使用:
构造方法:
public SimpleDateFormat()用默认的模式和默认语言环境的日期格式符号构造 SimpleDateFormat
public SimpleDateFormat(String pattern):创建格式化/解析器对象 提供一个参数:模式
以下的模式: 模式的表示方法
Year 年 y 2017 yyyy
Month 年终的月份 M
Number 月份中的天数 d
小时 H
分钟 m
分钟中的秒数 s
Date—>String
public final String format(Object obj)格式化一个对象以生成一个字符串要使用DateFormat这个类:但是抽象类了,使用子类进行实例化SimpleDateFormat
String—->Date
public Object parseObject(String source)解析字符串的文本,生成 Date。
代码:
public static void main(String[] args) throws ParseException {
Date d = new Date();
String s = dateToString(d);
System.out.println(s);
Date d1 = stringToDate("2018-3-16");
System.out.println(d1);
}
public static String dateToString(Date d){
SimpleDateFormat sdf = new SimpleDateFormat("y-M-d");
String s = sdf.format(d);
return s;
}
public static Date stringToDate(String s ) throws ParseException{
// SimpleDateFormat sdf = new SimpleDateFormat(“y-M-d”);
// Date d = sdf.parse(s);
// return d;
return new SimpleDateFormat(“y-M-d”).parse(s);
}
代码结果:
2017-7-29
Fri Mar 16 00:00:00 CST 2018
需求:
键盘录入你的出生年月日,算一下你来到这个世界多少天?
代码;
public static void main(String[] args) throws ParseException {
//键盘录入
Scanner sc = new Scanner(System.in);
//接收数据
System.out.println("请您输入您的出生年月日:");
String s = sc.nextLine();
long now = System.currentTimeMillis();
SimpleDateFormat sdf =new SimpleDateFormat("y-M-d");
Date d = sdf.parse(s);
long old = d.getTime();
System.out.println("您来到世界已经"+(now-old)/1000/60/60/24+"天了");
}
代码结果;
请您输入您的出生年月日:
1996-3-16
您来到世界已经7805天了