一、System类
1.所属的包java.lang包 不需要导入
2.不需要创建对象 通过类名就可以访问
3.有三个属性及若干的方法
三个属性out in err
方法gc() exit(0); currentTimeMillis();
public class TestDate { public static void main(String[] args){ //返回当前系统时间与计算机元年之间的毫秒差 //1970-1-1 00:80:00 long time = System.currentTimeMillis(); System.out.println(time); //可用来计算循环的时间 } }
二、Date类
java.util.Date
1.通常使用的是java.util包
2.导包后拿来使用 ,需要构建对象
3.通常使用无参数的构造方法或者带long构造方法
4.Date类中常用的方法
before(); after();
setTime() getTime();----->long
compareTo(); -1 1 0
5.可以处理一个Date日期的格式
import java.util.Date; public class TestDate { public static void main(String[] args){ //返回当前系统时间与计算机元年之间的毫秒差 //1970-1-1 00:80:00 long time = System.currentTimeMillis(); System.out.println(time); //1562853912201 //Date输出的时间格式是格林威治格式的时间 Date date1 = new Date(1562853912201L);//输出与计算机元年相隔Long毫秒的格林威治格式的时间 Date date2 = new Date();//输出运行此行代码的格林威治格式的时间 System.out.println("date1 :"+date1); System.out.println("date2 :"+date2); boolean a = date1.after(date2);//判断date1 是否在date2 之后 boolean b = date1.before(date2);//判断date1 是否在date2 之前 System.out.println(a); System.out.println(b); date1.setTime(1562854624843L);//更改date1的时间 System.out.println("改变后的date1:"+date1); long date1New = date1.getTime();//获取date1的时间 毫秒值 System.out.println("date1为:"+ date1New); int c = date1.compareTo(date2);//按照索引顺序比较 -1表示调用在前参数在后 1刚好相反 System.out.println(c); } } 输出结果: 1562855208934 date1 :Thu Jul 11 22:05:12 CST 2019 date2 :Thu Jul 11 22:26:48 CST 2019 false true 改变后的date1:Thu Jul 11 22:17:04 CST 2019 date1为:1562854624843 -1
三、DateFormat类
java.text.DateFormat
1.包java.text,需要导包使用
2.此类是一个抽象类,不能创建对象 ,需要通过子类来使用
3.SimpleDateFormat类是DateFormat的子类
4.调用带String参数的构造方法创建format对象
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String v = sdf.format(date1);//通过sdf对象将date1格式化成你描述的样子
import java.text.SimpleDateFormat; import java.util.Date; public class TestDate { public static void main(String[] args){ Date date1 = new Date(); System.out.println(date1); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//描述需要的时间格式 String sdf = simpleDateFormat.format(date1);//通过sdf对象将date1格式化成你描述的样子 System.out.println(sdf); } } 输出结果 Thu Jul 11 22:42:58 CST 2019 2019-07-11 22:42:58
四、Calendar
java.util.Calendar
1.所属的包java.util 需要导包
2.有构造方法 ,但是是用protected修饰的,通常访问不到 ,所以我们通常会调用默认的getInstance();
3.常用方法
after() before()
setTime() getTime()---->Date
getTimeInMillis()----time
getTimeZone()---TimeZone
Calendar里面包含一个date属性 可以操作date的某一个局部信息
set get
calendar.set(Calendar.YEAR,2015);
int year = calendar.get(Calendar.YEAR);
import java.util.Calendar; import java.util.Date; import java.util.TimeZone; public class TestDate { public static void main(String[] args){ Calendar calendar = Calendar.getInstance();//可以构建一个系统当前时间的calendar对象 //可以理解为calendar中包含一个date int year = calendar.get(Calendar.YEAR);//直接操作 类.属性 获取年月日等 int month = calendar.get(Calendar.MONTH);//从0开始数 7 月 显示6 int day = calendar.get(Calendar.DAY_OF_MONTH); System.out.println(year+"--"+month+"--"+day); Date date = new Date(); System.out.println(date);//date创建时的格林威治格式的时间 System.out.println(date.getTime());//date创建时距计算机元年的时间 calendar.set(Calendar.YEAR,2015);//将年份改为2015年 System.out.println(calendar.getTime()); calendar.setTime(date);//将calendar创建的时间改为date创建的时间 System.out.println(calendar.getTime()); TimeZone tz = calendar.getTimeZone();//获取时区 System.out.println(tz.getID());//时区的 System.out.println(tz.getDisplayName());//时区的名字 } } 输出结果: 2019--6--11 Thu Jul 11 23:15:54 CST 2019 1562858154154 Sat Jul 11 23:15:54 CST 2015 Thu Jul 11 23:15:54 CST 2019 Asia/Shanghai 中国标准时间