JavaSE03_Day02(上)-Date(定义、时间分类、弊端、案例)、SimpleDateFormat(定义、解析格式化字符和含义的说明、将Date格式化String、将String转化为Date)
一、Date(了解)
1.1 定义
Date类是Java中用于表示时间的一个类,当前通过这个类创建出的对象就表示一个时间,内部维护了一个long值,该值保存的是自1970年元旦到当前Date所表示的时间之间经历的毫秒值。
1.2 时间分类
-
UTC(世界调整时间)
-
GMT(格林威治时间),也可以称之为科学标准时间,是位于英国伦敦的皇家格林尼治天文台的标注时间,因为本初子午线被定义在通过那里的经线位置。
UTC和GMT时间是一个时间
北京时间 = UTC+8
北京时间 = GMT+8
1.3 弊端
Date类设计之初并没有考虑的特别全面,导致于现在在使用的过程中会出现很多功能缺陷问题,后期可以通过使用后面所学习的日历类和Java8所提供的新日期类进行替代。
1.4 案例
package cn.tedu.date;
import java.util.Date;
/**
* Date日期类
* @author cjn
*/
public class DateDemo {
public static void main(String[] args) {
/*
* 获取当前时间的偏移量
* 从1970-1-1 8:00:00.000作为起点
*/
long time = System.currentTimeMillis();
System.out.println(time);
/*
* 通过Date对象的创建获取当前时间
* Date类源码中重写了Object类中的toString方法
*/
Date date = new Date();
System.out.println("当前时间:" + date);
/*
* 通过Date对象进行获取时间偏移量
* getTime(),内部仍然维护的是long值
* 下面按照年的单位进行换算打印
*/
System.out.println(date.getTime()/1000/60/60/24/366 + 1970);
/*
* 通过上面的对当前时间偏移量的取值,
* 也可以对时间偏移量进行赋值
* setTime(0)回归到最开始的时间
*/
// date.setTime(0);
// System.out.println(date);
/*
* 千年虫 缺陷(bug)
* 49 - 10 - 1
* 79 - 10 - 1
* 99 - 10 - 1
* 00 - 10 - 1
* 01 - 10 - 1
* 年份在设计的时候没有前两位
*/
/*
* 获取年份getYear()
* 该方法是一个过期方法,但是不影响使用
* 获取年份如果希望表示当前时间年份需要 + 1900
*/
int year = date.getYear();
System.out.println(year + 1900);
/*
* 获取月
* 该方法是一个过期方法,但是不影响使用
* 获取月份的时候比真实月份少1
*/
int month = date.getMonth();
System.out.println(month + 1);
/*
* 获取日
* 该方法是一个过期方法,但是不影响使用
*/
int day = date.getDate();
System.out.println("日:" + day);
/*
* 获取星期
* 该方法是一个过期方法,但是不影响使用
*/
int week = date.getDay();
System.out.println("星期:" + week);
/*
* 获取小时
* 该方法是一个过期方法,但是不影响使用
*/
int hour = date.