Java回顾第五章

懒懒张187 2021-04-26 12:22:59
Date类
1.毫秒值的概念和作用

/*
java.util.Date类:用于描述日期和时间的类
类 Date 表示特定的瞬间,精确到毫秒。
1秒 = 1000毫秒
1 天 = 24 × 60 × 60 = 86400 秒*1000 = 86400000毫秒
--------------------------------------------------------------
时间原点:0毫秒的时间
1970 年 1 月 1 日 00:00:00 英国格林威治时间(世界标准时间)
中国:东八区 时间+8个小时的时差
1970 年 1 月 1 日 08:00:00
可以把日期和时间转换为毫秒值:就是时间原点和当前时间的一个差值
例如时间(2020年02月04日11:36:28)-时间原点(1970 年 1 月 1 日 00:00:00)= 日期和时间转换为了毫秒值(1574132468346)
---------------------------------------------
毫秒值作用: 对时间进行计算
工作:计算两个时间的差值,把时间转换为毫秒值计算
"2019年11月19日11:00:28"-"2018年10月19日11:00:28" = 没法计算
1574132468346 - 15741222468346 = 234234111毫秒值==>转换为时间(234234111毫秒值/1000/60/60/24)天
*/
public class Demo01Date{
public static void mian(String[] args){
System.out.println(System.currentTimeMills());
}
}


2.Date类的构造方法和成员方法

/*
java.util.Date类
构造方法:
Date() 重点
Date(long date)
成员方法:
long getTime() 重点
返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
void setTime(long time)
设置此 Date 对象,以表示 1970 年 1 月 1 日 00:00:00 GMT 以后 time 毫秒的时间点。
*/
public class Demo01Date{
public static void main(String[] args){
//show01();
//show02();
//show03();
show04();
}

/*
Date类的成员方法
void setTime(long time) 传递毫秒值,把毫秒值转换为Date日期
此方法相当于Date类的带参数构造方法
Date(long date) 传递毫秒值,把毫秒值转换为Date日期
*/
private static void show04(){
Date date = new Date();
date.setTime(0L);
System.out.println(date); //Thu Jan 01 08:00:00 CST 1970

}

/*
Date类的成员方法
long getTime() 把日期转换为毫秒值(当前时间和时间原点之间共经历了多少毫秒)
*/
private static void show03() {
Date date = new Date();
long time = date.getTime();
System.out.println(time);//1619364584395

System.out.println(System.currentTimeMillis()); //1619364661226
}

/*
Date类的带参数构造方法:
` Date(long date) 传递毫秒值,把毫秒值转换为Date日期
注意:
在时间和日期相关的类中,long类型的值就是毫秒值
*/
private static void show02() {
Date d1 = new Date(0L);
System.out.println(d1); //Sun Apr 25 23:36:24 CST 2021

d1 = new Date(12345L);
System.out.println(d1);// Thu Jan 01 08:00:12 CST 1970
}

/*
Date类的空参数构造方法:
Date() 获取当前系统的日期和时间
CST:中国标准时间(北京|上海)
*/
private static void show01() {
Date date = new Date();
System.out.println(date);//Sun Apr 25 23:36:24 CST 2021
}
}

5.DateFormat类









java.text.DateFormat类 extends Format
DateFormat 是日期/时间格式化子类的抽象类==>是Format类的子类,还是一个抽象类(无法创建对象)
作用:
格式化(也就是日期 -> 文本)
解析(文本-> 日期)
成员方法:
String format(Date date) 根据指定的模式,把日期格式化为符合模式的字符串
Date parse(String source) 把符合模式的字符串解析为日期
-------------------------------------------
DateFormat是一个抽象类,无法直接创建对象使用,需要使用DateFormat的子类
java.text.SimpleDateFormat extends DateFormat
构造方法:
SimpleDateFormat(String pattern)
用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。
参数:
String pattern:传递日期和时间的模式
在模式中写y代表年
在模式中写M代表月
在模式中写d代表日
在模式中写H代表时
在模式中写m代表分
在模式中写s代表秒
"yyyy-MM-dd HH:mm:ss"
"yyyy/MM/dd HH/ss"
"yyyy年MM月dd日 HH时mm分ss秒"
注意:
表示模式的字母不能改变(y,M...),字母的连接符号可以随意写

public class Demo01DateFormat {
public static void main(String[] args) /*throws ParseException*/ {
show02();
}

/*
Date parse(String source) 把符合模式的字符串解析为日期
实现步骤:
1.创建SimpleDateFormat对象,构造方法中传入指定的模式
2.调用SimpleDateFormat对象中的方法parse,把符合模式的字符串解析为日期
*/
private static void show02() /*throws ParseException*/ {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
/*
public Date parse(String source) throws ParseException
parse方法抛出了解析异常ParseException
当传递的字符串和模式不匹配的时候,就会抛出此异常
调用了一个抛出异常的方法,有两种处理方式:要么throws继续抛出,要么try...catch处理
alt+回车
*/
Date date = null;
try {
date = sdf.parse("2000/01-01");
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println(date);
}

/*
String format(Date date) 根据指定的模式,把日期格式化为符合模式的字符串
实现步骤:
1.创建SimpleDateFormat对象,构造方法中传入指定的模式
2.调用SimpleDateFormat对象中的方法format,根据构造方法中传入的模式,把日期格式化为符合模式的字符串
*/
private static void show01() {
//SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
SimpleDateFormat sdf = new SimpleDateFormat("yy年M月d日 H时m分s秒");//21年04269日 00时39分02秒
Date date = new Date();//Mon Apr 26 00:39:14 CST 2021
System.out.println(date);
String s = sdf.format(date);
System.out.println(s);//2021-04-26 00:39:14
}
}













...全文
97 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
聪头 2021-04-26
  • 打赏
  • 举报
回复
感谢

50,528

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧