Date常用方法

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())

  1. Date类当中的getTime是获取毫秒数,得到long值。
  2. Calendar当中的getTime是获取Date对象。
 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

你可能感兴趣的:(java基础,date)