1. Date类型的构造方法
(1)Date类型的无参构造方法,得到当前时间点的日期对象。
Date date = new Date();//导入java.util.Date
// 生成的日期时间是,执行这行代码时的瞬间
System.out.println(date.toString());
(2)Date类型的有参构造方法,可以根据传入的毫秒数,生成一个日期对象。
Date mydate = new Date( 1L*(2020-1970)*365*24*60*60*1000 );
System.out.println("传入毫秒数得到日期对象:" + mydate);
System.out.println(mydate.getTime());
2. Date类型中常用的方法
(1)date.getTime()方法,获得日期对象底层封装的毫秒数。
long fTime = date.getTime();
System.out.println("日期对象底层的毫秒数是:" + fTime);
(2) Sytem.currentTimeMillis()方法,获得计算机元年到当前经历过了多少毫秒数。
long time = System.currentTimeMillis();
System.out.println("计算机元年到当前经历过的毫秒数:" + time);
(3)date.setTime(long time)方法,直接修改日期对象中的毫秒值变量。数字后面加小写或者大写的L。
date.setTime(-100000000000L);
System.out.println(date);
//Mon Oct 31 22:13:20 CST 1966
(3)Date类型中其他的方法,不要用!Date类型,只适合于时间的保存和读取; 时间的运算等算法,使用Calendar类型。
Date now = new Date();
System.out.println("year: " + now.getYear());
System.out.println("month: " + now.getMonth());
System.out.println("date: " + now.getDate());
运行结果:year: 120
month: 2
date: 8
//120,Date类型在设计时,主要考虑直接使用两位年份
// 1998年,只需要保存98两个数字即可:1900 + 98 = 1998
// 2020年,只需要保存20两个数字: 1900 + 120 = 2020
(4)Long长整形的最大值,最多可用到哪一年
//long长整数类型用于保存毫秒值,最多可用到哪一年
long max =Long.MAX_VALUE;
System.out.println("long的最大值是:"+max);
//long的最大值是:9223372036854775807
long maxYear=max/1000/60/60/24/365+1970;
System.out.println("long 可以用到的年份是:"+maxYear);
//long 可以用到的年份是:292473178
3.printf
public static void main(String args[]) {
// 初始化 Date 对象
Date date = new Date();
//c的使用
System.out.printf("全部日期和时间信息:%tc%n",date);
//f的使用
System.out.printf("年-月-日格式:%tF%n",date);
//d的使用
System.out.printf("月/日/年格式:%tD%n",date);
//r的使用
System.out.printf("HH:MM:SS PM格式(12时制):%tr%n",date);
//t的使用
System.out.printf("HH:MM:SS格式(24时制):%tT%n",date);
//R的使用
System.out.printf("HH:MM格式(24时制):%tR",date);
}
结果为:
全部日期和时间信息:星期一 九月 10 10:43:36 CST 2012
年-月-日格式:2012-09-10
月/日/年格式:09/10/12
HH:MM:SS PM格式(12时制):10:43:36 上午
HH:MM:SS格式(24时制):10:43:36
HH:MM格式(24时制):10:43
4、使用 SimpleDateFormat 格式化日期
(1)解析字符串为整数类型。
int num=Integer.parseInt("432");
System.out.println(num);
//432
使用sdf.parse(str), 将一个字符串,解析为一个日期对象。
String str="1999-3-5 15:45:00";
String pattern="yyyy-MM-dd HH:mm:ss";
SimpleDateFormat sdf=new SimpleDateFormat(pattern);
Date date=sdf.parse(str);
System.out.println(date);
结果为:Fri Mar 05 15:45:00 CST 1999
(2)使用sdf.format(date),将日期对象,格式化输出为字符串
String str="1999-3-5 15:45:00";
String pattern ="yyyy年MM月dd日 E ahh时mm分ss秒SSS毫秒 Z时区";
SimpleDateFormat sdf=new SimpleDateFormat(pattern);
Date date=new Date();//创建了新的日期对象
str=sdf.format(date);
System.out.println(str);
结果为:2020年03月08日 星期日 下午10时32分15秒085毫秒 +0800时区
*【结果的时间为程序运行时的时间】