Java - Date
Date中的构造方法和成员方法
import java.util.Date;
public class demo {
public static void main(String[] args) {
/*
空参数 Date()
打印当前时间
*/
Date d1 = new Date();
System.out.println(d1);//Sun Jul 25 18:22:35 CST 2021
/*
把毫秒转化为日期
Date类带参数的构造方法
Date(Long date):传递毫秒值
*/
Date d2 = new Date(0L);
System.out.println(d2);//Thu Jan 01 08:00:00 CST 1970
Date d3 = new Date(1627209270282L);
System.out.println(d3);//Mon Dec 20 19:33:19 CST 2021
/*
把日期转化为毫秒
Long getTime()
返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此Date对象表示的毫秒数
*/
Date d4 = new Date();
Long time = d4.getTime();
System.out.println(time);//1627209270282
}
}
DateFormat
是日期/时间格式化子类的抽象类
作用
格式化(也就是日期 -> 文本)、解析(文本 -> 日期)
成员方法
string format(Date date)按照指定的模式,把Date日期,格式化为符合模式的字符串
Date parse(String source)把符合模式的字符串,解析为Date日期
simpleDateFormat
DateFormat类是一个抽象类,无法直接创建对象使用,可以使用DateFormat的子类
构造方法
simpleDateFormat(String pattern用给定的模式和语言环境的日期格式SimpLeDateFormato
参数
string pattern : 传递指定的模式
模式
区分大小写的
比如:
"yyyy-MM-dd HH:mm:ss"
"yyyy年MM月dd日 HH时mm分ss秒"
注意:
模式中的字母不能更改,链接模式的符号可以改变
常用定义表
字符 | 描述 | 例子 |
---|---|---|
y | 四位数年份 | 2001 |
M | 年中的月份 | July or 07 |
d | 月份中日期 | 10 |
H | 天中的小时 (0~23) | 22 |
m | 小时中的分钟 | 30 |
s | 分钟中的秒钟 | 55 |
代码实现
format
import java.text.SimpleDateFormat;
import java.util.Date;
public class demo {
public static void main(String[] args) {
/*
使用DateFormat类中的方法format,把日期格式化为文本
string format(Date date)按照指定的模式,把Date日期,格式化为符合模式的字符串
1、创建simpleDateFormat对象,构造方法中传递指定的模式
2、调用simpleDateFormat对象中的方法format,按照构造方法中指定的模式,把Date日期格式化为符合模式的字符串文本
*/
SimpleDateFormat si1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //我们定义的模式
SimpleDateFormat si2 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒"); //我们定义的模式
//定义当前时间
Date date1 = new Date();
//将时间传入SimpleDateFormat
String s1 = si1.format(date1);
String s2 = si2.format(date1);
System.out.println(date1);//Sun Jul 25 19:00:22 CST 2021
//按照我们指定的格式打印的日期
System.out.println(s1);//2021-07-25 19:00:22
//按照我们指定的格式打印的日期
System.out.println(s2);//2021年07月25日 19时03分38秒
}
}
parse
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class demo {
public static void main(String[] args) throws ParseException {
/*
Date parse(String source)把符合模式的字符串,解析为Date日期
1、创建SimpleDateFormat对象,构造方法中传递指定的模式
2、调用SimpleDateFormat对象中的方法parse,把符合构造方法中模式的字符串解析为Date日期
注意:
public Date parse(String source ) throws ParseException
parse方法声明了一个异常叫ParseException解析异常
如果字符串和构造方法中的模式不一样,那么程序就会抛出此异常
调用一个抛出了异常的方法,就必须的处理这个异常,要么throws继续声明抛出这一个异常,要么try ...catch自己处理这个异常
*/
SimpleDateFormat si1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//parse处出错,Alt+Enter 添加异常到方法签名 (使用try/catch环绕也可以)
Date d1 = si1.parse("2021-07-25 19:00:22");
System.out.println(d1);//Sun Jul 25 19:00:22 CST 2021
}
}