格式化类
DateFormat
使用子类:SimpleDateFormat
常用构造:
SimpleDateFormat(string pattern)
常用方法:
Date date=Date.parse(String str);//将字符串转成date
String.format(Date date);//将date转成string
例题:在控制台输入用户信息name,birthday,createDay并将输入的信息展示出来。
上面问题可以看出,有两个是date类型的,我们可以用DateFormat里面的方法来将date与string相互转换:
下面我将封装一个含有字符串转日期,与日期转字符串的类,作为我们以后将字符串与日期进行转换的一个工具类
public class DateUtil {
private static final String PATTERN="yyyy-mm-dd";
private static final String PATTERN1="yyyy-mm-dd HH:MM:SS";
private DateUtil() {
}
public Date strToDate(String date,boolean flag){
Objects.nonNull(date);
String type=PATTERN;
if(!flag)type=PATTERN1;
DateFormat dateFormat=new SimpleDateFormat(type);
try {
return dateFormat.parse(date);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
public static String dateToStr(Date date,boolean flag){
Objects.nonNull(date);
String type=PATTERN;
if(!flag)type=PATTERN1;
DateFormat dateFormat=new SimpleDateFormat(type);
return dateFormat.format(date);
}
}
下面的类是用户信息类:
@AllArgsConstructor
@Setter
@Getter
@NoArgsConstructor
public class UserInfor {
private String name;
private Date birthday;
private Date createDay;
@Override
public String toString() {
return "{" +
"name='" + name + '\'' +
", birthday=" + (birthday==null?"null":DateUtil.dateToStr(birthday,true))+
", createDay=" + (createDay==null?"null":DateUtil.dateToStr(createDay,false))+
'}';
}
}
通过控制台,我们来给用户的属性赋值并且展示:
public class String_ {
static Scanner input = new Scanner(System.in);
private static void demo9() {
System.out.println("input your name");
UserInfor userInfor = new UserInfor();
userInfor.setName(input.nextLine());
System.out.println("input your birthday");
userInfor.setBirthday(DateUtil.strToDate(input.next(),true));
System.out.println("input your createday");
userInfor.setCreateDay(DateUtil.strToDate(input.next(),true));
System.out.println(userInfor);
}
}
以上我们就实现了字符串与日期之间的相互转换,看结果:
input your name
liku
input your birthday
2022-01-01
input your createday
2022-11-12
DateUtil{name='liku', birthday=2022-01-01, createDay=2022-11-12 00:01:00}