222/223DateFormat类与SimpleDateFormat类介绍和DateFormat类的format方法与parse方法
DateFormat类与SimpleDateFormat类介绍
java.text.DateFormat 是日期/时间格式化子类的抽象类,
我们通过这个类可以帮我们完成日期和文本之间的转换,也就是可以在Date对象与String对象之间进行来回转换。
格式化:按照指定的格式,从Date对象转换为String对象。
解析︰按照指定的格式,从String对象转换为Date对象。
构造方法
由于 Dateformat为抽象类,不能直接使用,所以需要常用的子类 java. text, simpledateformat。这个类需要一个模式
(格式)来指定格式化或解析的标准。构造方法为
public simpledate Format( String pattern)∴用给定的模式和默认语言环境的日期格式符号构造Simple Date Format.
参数pattern是一个字符串代表日期时间的自定义格式
格式规则
主要用于
java.text.DateFormat:是日期/时间格式化子类的抽象类
作用:
格式化 (也就是日期->文本)、解析(文本->日期)
成员方法:
String format(Date date)按照指定的模式,把Date日期,格式化为符合模式的字符串
Date parse(String source)把符合模式的字符串,解析为Date日期
DateFormat类是一个抽象类,无法直接创建对象使用,可以使用DateFormat的子类
java.text.simpLeDateFormat extends DateFormat
构造方法:
SimpLeDateFormat(String pattern)用给定的模式和Z认语言环境的日期格式符号构造simpLeDateForma
参数:
String pattern:传递指定的模式模式:区分大小写的
写对应的模式,会把模式替换为对应的日期和时间
"yyyy-M-dd HH : mm: ss"
"yyyy 年 mm 日 HH 日 mm 分 ss 秒”
注意:
模式中的字母不能更改,连接模式的符号可以改变
DateFormat类的format方法与parse方法
format方法
使用DateFormat类中的方法format,把日期格式化为文本
string format(Date date)按照指定的模式,把Date日期,格式化为符合模式的字符串
public static void main(String[] args) throws ParseException {
demo01();
demo02();
}
/*
使用 Dateformat类中的方法 format,把曰期格式化为文本
String format( Datedate)按照指定的模式,把Date日期,格式化为符合模式的字符串
使用步骤:1.创建 Simpledate Format对象,构造方法中传递指定的模式
2.调用 Simpledate Format对象中的方法 format,按照构造方法中指定的模式,把pote日期格式化为符合模式的字符串(文本)
*/
private static void demo01() {
//1.创建 Simpledate Format对象,构造方法中传递指定的模式
SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat s1 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
Date date = new Date();
String a1 = s.format(date);
String a2 = s1.format(date);
System.out.println(a1);//2022-07-06 09:38:44
System.out.println(a2);//2022年07月06日 09时38分44秒
}
private static void demo02() {
SimpleDateFormat q = new SimpleDateFormat("aaaa-BB-cc DD:ee:ff");
SimpleDateFormat q1 = new SimpleDateFormat("aaaa年BB月cc日 DD时ee分ff秒");
Date date = new Date();
String w1 = q.format(date);
String w2 = q1.format(date);
System.out.println(w1);//2022-07-06 09:38:44
System.out.println(w2);//2022年07月06日 09时38分44秒
}
parse方法
使用DateFormat类中的方法parse,把文本解析为日期
Date parse( String source)把符合模式的字符串,解析为Date日期
注意:
public Date parse(String source) throws ParseExceptionparse方法声明了一个异常叫ParseException解析异常
如果字符串和构造方法中的模式不一样,那么程序就会抛出此异常
调用一个抛出了异常的方法,就必须的处理这个异常,要么throws继续声明抛出这一个异常,要么try...catch自己处理这个异常
public static void main(String[] args) throws ParseException {
demo01();
demo02();
}
/*
使用 Dateformat类中的方法 parse,把文本解析为日期
Date parse( String source)把符合模式的字符串,解析为Date日期
使用步骤:
1.创建 Simpledate Format对象,构造方法中传递指定的模式
2.调用Simpledate Format对象中的方法parse把符合构造方法中模式的字符串,解析为Date日期
注意:
public Date parse (string source )throws Parseexception
parse方法声明了一个异常叫 Parseexception解析异常
如果字符串和构造方法中的模式不一样,那么程序就会抛出此异常
调用一个抛出异常的方法,就必须的处理这个异常,要么 throws继续声明抛出这一个异常,要么try....catch自己处理这个异常
*/
private static void demo02() throws ParseException {
//1.创建 Simpledate Format对象,构造方法中传递指定的模式
SimpleDateFormat a1 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
//2.调用Simpledate Format对象中的方法parse把符合构造方法中模式的字符串,解析为Date日期
Date date = a1.parse("2022年07月06日 09时38分44秒");
System.out.println(date);
}
/*
练习:
请使用日期时间相关的API计算出一个人已经出生多少天
分析:
1.使用Scannen类中的方法next,获取出生日期
2.使用DateFormat类中的方法parese把字符串的出生日期解析为Date格式
3.把Date格式出生日期转换为毫秒值
4.获取当前的日期,转换为毫秒值
5.使用当前的毫秒值减去出生日期的毫秒值
6.把毫秒值的差转化为天(s/100/60/60/26)
*/
public class Demo02Test {
public static void main(String[] args) throws ParseException {
// 1.使用Scannen类中的方法next,获取出生日期
Scanner sc = new Scanner(System.in);
System.out.println("输入出生日期");
String s = sc.next();
//2.使用DateFormat类中的方法parese把字符串的出生日期解析为Date格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date bir = sdf.parse(s);
//3.把Date格式出生日期转换为毫秒值
long time = bir.getTime();
//4.获取当前的日期,转换为毫秒值
long today = new Date().getTime();
//5.使用当前的毫秒值减去出生日期的毫秒值
long a1= today-time;
// 6.把毫秒值的差转化为天(s/1000/60/60/24)
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本