关于SimpleDateformat的使用:
package dateFormat;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Demo1 {
public static void main(String[] args) throws ParseException {
/*
* 以Date类的对象表示的时间,打印出来后是英文,不便阅读,但还不能改变它的时间格式
* 若想以自定义的格式表示时间,就要修改默认的时间格式,但Date类又不能做修改,所以可以使用
* DateFormat类
* DateForm类是抽象类,不能创建对象,需要使用其子类来创建对象
* SimpleDateFormat类
* */
Date date = new Date();
/*
*引用d1指向的子类的这块堆区空间中,实际上是有默认的时间格式的:19-7-11 下午4:54
* */
DateFormat d1 = new SimpleDateFormat();
System.out.println(d1);//这样打印出来的是个地址,因为这只是个引用,指向了子类的对象
/*在DateFormat类中有个format(Date date)方法,
* 只要给的是Date的类对象,就要按照给定的格式来转换成字符串
* 这个方法需要一个Date的时间对象,用于将对象date格式化为一个字符串
* 方法返回一个字符串,而且这个字符串中存储的是时间
* 将原来的Date时间格式转换成了:19-7-11 下午4:54,这也是字符串中存储的序列
* 所以说这里有了一个默认的表示时间的格式转换
* Thu Jul 11 16:58:32 CST 2019 到 19-7-11 下午4:54 的转换
* */
String str = d1.format(date);//将date对象中存储的时间,按照d1自带的格式去转换
System.out.println(str);
/*
* 在现实生活中,用户在输入时间时,实际上输入的是字符串(在后台的角度),这时候就需要
* 将字符串转换为时间,可以利用parse(String str)方法,该方法返回的是一个Date类的对象
* 所以可以用Date的类对象来接收。
*
* */
Date date2 = new Date();
date2 = d1.parse(str);//将字符串转换成了Date的类对象。注意这里会有个异常,要抛出异常
System.out.println(date2);//这样打印出来的时间还是Date默认的时间格式.
/*
* 但是在现实生活中当用户输入时间时,要按照指定的格式来输入,比如:2000-01-01等这样的方式
* 不能瞎输,所以要按照指定的格式输入时间,用到SimpleDateFormat的构造方法
* SimpleDateFormat(String pattern):使用给定的模式创建格式对象
* 括号里是指定的输入时间格式:y代表年,M代表月,d代表日
* 这样做等于是修改了,df的默认时间格式
* */
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String str3 = df.format(date2);//要按照给定的格式来转
System.out.println(str3);//结果是:2019-07-11
}
}