day-15

今日内容:【Object类、常用API】

  • Object类
  • Date类
  • DateFormat类

  • Calendar类

  • System类

  • StringBuilder类

  • 包装类

    学习目标
    • ​ 能够理解Object类的特点
    • ​ 能够重写Object类的toString方法
    • ​ 能够重写Object类的equals方法
    • ​ 能够使用日期类输出当前的日期
    • ​ 能够使用将日期格式化为字符串的方法
    • ​ 能够使用将字符串转化为日期的方法
    • ​ 能够使用System类的数组复制方法
    • ​ 能够说出使用StringBuilder类可以解决的问题
    • ​ 能够使用StringBuilder类可以解决的问题
    • ​ 能够说出8种基本数据类型对应的包装类
    • ​ 能够说出自动装箱、自动拆箱的概念
    • ​ 能够将字符串转化成对应的基本数据类型
    • ​ 能够将基本数据类型转换成对应的字符串

预习下周内容:

​ 集合框架(Collection、List、Set、Map)、泛型、异常框架(Throwable、Error、Exception) 异常(运行期异常、编译期异常)、线程(单线程、多线程、线程池)

java.util.Date 表示时间和日期的类
类Date可以获取精确到毫秒值的特定瞬间
毫秒。千分之一秒 1秒 = 1000毫秒
2020-11-27 19:26:30:333 瞬间

毫秒值的作用,可以堆时间和日期做一个精确的计算

2020-10-09 到 2020-11-27 中间一共有多少天
可以把日期先转换成毫秒值进行计算,计算完毕再把毫秒值转化成日期

把日期转换成毫秒值
当前的日期2020-11-27
时间起始值(原点)(0毫秒)1970 年 1 月 1日00:00:00 英国的格林威治时间 以来的指定毫秒数
就是计算当前日期到时间起始值一共有多少毫秒?

         注意:
             中国是属于东八区 会在标准时间之上再增加八个小时  上海或者北京
             1970年1月1日 08:00:00
             
         一天 = 24* 60 * 60 *1000 = 86400000 毫秒值
         把毫秒值再转换成日期

	      1606477397501/86400000 天数
public class Demo01Date {
	public static void main(String[] args) {
		System.out.println(System.currentTimeMillis());
		Date date = new Date(0L);
		System.out.println(date);//THU JAN 01 08:00:00 CST 1970
		
		// 获取当前时间的毫秒值
		Date date2 = new Date();
		System.out.println(date2);//Fri Nov 27 19:52:17 CST 2020
		
		// 精确到毫秒值 getTime()
		long time = date2.getTime();
		System.out.println(time);//1606478033867L
		
		// 毫秒值在转换成日期
		Date date3 = new Date(1606478033867L);
		System.out.println(date3);
	}

}

Java.text.DateFormat: 进行日期/时间格式化的抽象类
作用:
格式化:日期 ----》 文本
解析: 文本-----》日期
成员方法:
String format(Date date): 按照指定的模式,把date日期,格式化为符合模式的字符串
Date parse(String source) 把符合模式的字符串,解析成Date日期
DateFormat类是一个抽象类,无法直接创建对象,可以使用它的子类SimpleDateFormat
java.text.SimpleDateFormat extends DateFormat
构造方法:
public SimpleDateFormat(String pattern)
用给定的模式和默认语言环境的日期格式符号构造SimpleDateFormat

   参数:
       String pattern  传递指定的模式
       Thu Jan 01 08:00:00 CST 1970
       调整为: 20:15  2020/11/27
      模式:严格区分大小写
           y  年
           M  月
           d  日
           H  二十四时
           m  分
           s  秒
           F  星期
   
   写对应的模式  会把模式转换成对应的时间和日期
       “HH:mm yyyy/MM/dd”
   使用format方法  把日期格式化为文本
   使用DateFormat类中的方法parse,把文本解析成日期
   使用步骤:
         1. 创建SimpleDateFormat对象,构造方法传递指定的模式
         2. 调用SimpleDateFormat类中的parse方法,把符合构造方法当中模式的字符串解析成日期
      注意:
          public Date parse(String source) throws ParseException
          如果字符串和构造方法当中的模式不一样,程序会抛出解析异常
          如果程序调用了一个携带解析异常的方法,那么就必须对这个异常进行处理,处理异常通常有两种解决方案
           1.使用throws继续往上抛
           2.使用try catch语句块处理掉这个异常

代码如下:

public class DateFormatDemo {
		public static void main(String[] args) throws ParseException {
			Date date = new Date();
			// 按照指定的模式生成对应的字符串值
			// 使用DateFormat类的子类SimpleDateFormat
			SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm yyyy/MM/dd");
			// 把日期格式化为字符串
			String result = simpleDateFormat.format(date);
			System.out.println(result);
			System.out.println("============================");
			
			String strDate = "2020年11月27日 20:31:30 4";
			SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss F");
			Date date2 = simpleDateFormat2.parse(strDate);
			System.out.println(date2);
			
			// 练习:使用日期时间相关的API  计算一个人已经出生了多少天     根据输入的出生日期  距离今天有多少天
			System.out.println("============================");
			String strDate3 = "1999年11月14日 20:31:30 4";
			SimpleDateFormat simpleDateFormat3 = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss F");
			Date date3 = simpleDateFormat2.parse(strDate3);
			Date date4 = new Date();
			long time2 = date4.getTime();
			long time1 = date3.getTime();
			long time = time2-time1;
			System.out.println(time);
			System.out.println(time/86400000 + "天");
			
		}

}
原文地址:https://www.cnblogs.com/yangstudy/p/14071339.html