Date
一个date对象内容包含一个很大的long数字,代表从原点时间一直到程序运行的此时此刻,所经过的毫秒数(原点时间,指的是格林尼治时间,也称格林威治,对于中国来说,原点是早上八点)
一、Date
(1)获取当前时间(Date)
Date():无参数创建一个日期时间对象,获取的当前运行时间。
Date date = new Date();
System.out.println(date); // Thu Feb 21 14:22:09 GMT+08:00 2019
(2)获取原点后多少毫秒值的时间(Date(long time))
Date(Long time):参数代表从原点时刻所经过的毫秒数
Date date1 = new Date(1000l);
System.out.println(date1); // Thu Jan 01 08:00:01 GMT+08:00 1970
(3)设置毫秒数(setTime)
设置进去一个毫秒数
long time=1000l*2*60*60*24;
Date d1 = new Date();
d1.setTime(time);
System.out.println(d1); // Sat Jan 03 08:00:00 GMT+08:00 1970
(4)获取毫秒数(getTime)
long time=1000l*2*60*60*24;
Date d1 = new Date();
d1.setTime(time);
System.out.println(d1.getTime()); // 172800000
二、SimpleDateForma
(5)字符串和时间之间的转换(SimpleDateForma中format和parse的使用)
java.text.DateFormat是一个抽象类,负责将String和Date之间来回转换。
SimpleDateForma是DateFormat的子类 格式化输出日期时间
public SimpleDateFormat(String pattern):参数就是我们希望使用的格式。
参数字符串代表格式,只要记住一套即可:(严格区分大小写)
yyyy-MM-dd HH:mm:ss.SSS
yyyy四位数字代表:年
MM两位数字代表:月
dd两位数字代表:天
HH两位数字代表:小时
mm两位数字代表:分钟
ss两位数字代表:秒钟
SSS三位数字代表:毫秒
格式化:Date–>string format(Date date):将参数日期时间对象,变成字符串
Date date = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-DD HH:mm:ss");
System.out.println(dateFormat.format(date));// 2019-02-52 14:57:14
解析:string–>Date parse(String str):将参数字符串转换为对应的日期时间
String date="2019-02-52 14:57:14";
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-DD HH:mm:ss");
Date parse = dateFormat.parse(date);
System.out.println(parse); // Thu Feb 21 14:57:14 GMT+08:00 2019
三、calendar
(6)获取日历对象(calendar)
calendar是一个抽象类,不能直接new 对象,
public static Calendar getInstance();
Calendar instance = Calendar.getInstance();
System.out.println(instance);
// java.util.GregorianCalendar[time=1550733897109,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="GMT+08:00",offset=28800000,dstSavings=0,useDaylight=false,transitions=0,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2019,MONTH=1,WEEK_OF_YEAR=8,WEEK_OF_MONTH=4,DAY_OF_MONTH=21,DAY_OF_YEAR=52,DAY_OF_WEEK=5,DAY_OF_WEEK_IN_MONTH=3,AM_PM=1,HOUR=3,HOUR_OF_DAY=15,MINUTE=24,SECOND=57,MILLISECOND=109,ZONE_OFFSET=28800000,DST_OFFSET=0]
(7)根据参数,获取相应值(get(int field))
参数代表:你想要哪一条数据?年、月、日
参数不推荐使用int数字,推荐使用calendar当中的常量
Calendar ins = Calendar.getInstance();
System.out.println(ins.get(Calendar.YEAR)); // 2019
System.out.println(ins.get(Calendar.MONTH));// 1
System.out.println(ins.get(Calendar.DAY_OF_MONTH));// 21
(8)设置数据,成为指定的数值(set (int field,int value) )
Calendar ins = Calendar.getInstance();
ins.set(Calendar.YEAR,2019);
ins.set(Calendar.MONTH,1);
ins.set(Calendar.DAY_OF_MONTH,21);
ins.set(Calendar.MINUTE,45);
System.out.println(ins);
// java.util.GregorianCalendar[time=?,areFieldsSet=false,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="GMT+08:00",offset=28800000,dstSavings=0,useDaylight=false,transitions=0,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2019,MONTH=1,WEEK_OF_YEAR=8,WEEK_OF_MONTH=4,DAY_OF_MONTH=21,DAY_OF_YEAR=52,DAY_OF_WEEK=5,DAY_OF_WEEK_IN_MONTH=3,AM_PM=1,HOUR=3,HOUR_OF_DAY=15,MINUTE=45,SECOND=2,MILLISECOND=943,ZONE_OFFSET=28800000,DST_OFFSET=0]
YEAR=2019,MONTH=1,DAY_OF_MONTH=21
(9)对数据进行偏移量计算(add (int field,int amount))
Calendar instance = Calendar.getInstance();
instance.set(Calendar.YEAR,2019);
instance.set(Calendar.MONTH,1);
instance.set(Calendar.DAY_OF_MONTH,21);
instance.add(Calendar.MONTH,3);
instance.add(Calendar.DAY_OF_MONTH,8);
System.out.println(instance);
// java.util.GregorianCalendar[time=1559116495439,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="GMT+08:00",offset=28800000,dstSavings=0,useDaylight=false,transitions=0,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2019,MONTH=4,WEEK_OF_YEAR=22,WEEK_OF_MONTH=5,DAY_OF_MONTH=29,DAY_OF_YEAR=149,DAY_OF_WEEK=4,DAY_OF_WEEK_IN_MONTH=5,AM_PM=1,HOUR=3,HOUR_OF_DAY=15,MINUTE=54,SECOND=55,MILLISECOND=439,ZONE_OFFSET=28800000,DST_OFFSET=0]
YEAR=2019,MONTH=4 DAY_OF_MONTH=29
(10)将calendar转换为Date(getTime())
Calendar instance = Calendar.getInstance();
System.out.println(instance.getTime()); // Thu Feb 21 16:01:45 GMT+08:00 2019
(11)获取当前毫秒数(getTimeInMillis)
在Calendar中获取毫秒值是通过getTimeInMillis得到的。
Calendar instance = Calendar.getInstance(); System.out.println(instance.getTimeInMillis()) // 1550737081914
四、System
(12)获取当前系统的毫秒数(currentTimeMillis())
获取系统运行此时此刻的毫秒数
long millis = System.currentTimeMillis();
System.out.println(millis); // 1550736560229