位置
由此可见,DateFormat属于二级继承。
其还有一个直接子类:
稍后再看它。
DateFormat是一个抽象类哦。
功能
它可以帮你格式化和解析任何日期在任何地点,可以独立于地点日期约定以任何格式操作。
这个类就是一个格式化器,相当于你有一个日期对象,然后你可以把这个格式化器作用于这个日期对象以便得到你想要的结果。
public static void main(String[] args) {
DateFormat d=DateFormat.getDateInstance(DateFormat.LONG, Locale.ENGLISH);
Date t=new Date(119,11,8,16,27,00);//年为1900+119,此处提供的年值是你需要的年份减去1900
System.out.println(t.getTime());
String ts=d.format(t);
System.out.println(ts);
}
结果:
1575793620000
December 8, 2019
public static void main(String[] args) {
DateFormat d=DateFormat.getDateInstance(DateFormat.LONG, Locale.CHINA);
Date t=new Date(119,11,8,16,27,00);
System.out.println(t.getTime());
String ts=d.format(t);
System.out.println(ts);
}
结果:
1575793620000
2019年12月8日
不同的格式,会的出来不同的结果,以当地的时间格式约定为准。
解析时间和格式化时间简单来说就是相对的关系。
同时,日期格式化是非同步的。所以,官方推荐为每一个线程创建一个格式化句柄(如果需要)。否则就需要自己实现同步。
内部类
只有这一个,定义了一些常量。
域
这里都是static态的,可以直接调用,定义了一些样式模式,
例如,DateFormat.SHORT–>2019/12/8
DateFormat.LONG–>2019年12月8日
构造函数
只是一个被保护的构造函数
方法
大部分都是静态方法。这里列举最常见的一个。
public static void main(String[] args) throws ParseException {
DateFormat d=DateFormat.getDateInstance(DateFormat.MEDIUM, Locale.CHINA);
Date t=new Date(119,11,8,16,27,00);
System.out.println(t.getTime());
String ts=d.format(t);
System.out.println(ts);
Date t1=d.parse(ts);
System.out.println(t1.toLocaleString());
}
输出:
1575793620000
2019年12月8日
2019年12月8日 上午12:00:00