Date类,DateFormat类,Calendar类与System类

日期和时间

  1. Date类
    Date() 分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒)。
    Date(long Date) 分配Date对象并初始化此对象,以表示自从标准基准时间(1970年1月1日00:00:00 GMT)以来的毫秒数。
    注意:我们处于东八区,所以我们的基准时间为1970年1月1日8时0分0秒。
    使用空参构造创建Date对象,此Date对象表示的是当前操作系统的时间
    Date date=new Date();
    System.out.println(date); 结果Sun Mar 24 16:42:43 CST 2019
    使用有参构造创建一个Date对象,参数传递一个毫秒值
    Date date=new Date(0L);
    System.out.println(date); 结果Thu Jan 01 08:00:00 CST 1970
    在Date中,有一个方法叫做getTime,可以获取到Date对象表示的毫秒值。
    Date date=new Date();
    long millis =date.getTime(); 获得的就是从1970年1月1日8时0分0秒开始到现在的毫秒值
    还有一个方法叫setTime,可以设置毫秒值。
    Date date=new Date();
    date.setTime(10000000L); 表示从1970年1月1日8时0分0秒开始过了多少毫秒。

  2. DateFormat类
    由于DateFormat为抽象类,不能直接使用,所以要用的话,需要使用子类【SimpleDateFormat】
    SimpleDateFormat的构造方法:
    SimpleDateFormat(String pattern) 参数需要传递一个字符串,该字符串表示一个格式。例子如下:
    要转成的格式: | 2019年03月25日 08时31分21秒 |
    对应的格式: |yyyy年MM月dd日 HH时mm分ss秒|
    (就是使用英语字母代替时间中的数字)
    |y|年|
    |M|月|
    |d|日|
    |H|时|
    |m|分|
    |s|秒|
    2.1调用SimpleDateFormat中的String format(Date date)方法可以把参数Date对象转成一个字符串并返回。
    例子:
    (1)创建一个Date对象,表示当前系统时间
    Date date =new Date();
    (2)创建SimpleDateFormat对象,在构造方法中指定转换的格式
    SimpleDateFormat sdf=new SimpleDateFormat(“yyyy年MM月dd日 HH时mm分ss秒”);
    (3)调用SimpleDateFormat的format方法,将Date对象转成一个字符串
    String str=sdf.format(date);
    (4)然后输出str就是上面所定义的那个格式
    System.out.println(str);
    2.2调用SimpleDateFormat中的Date parse(String source)就可以将字符串转成一个Date对象并返回
    例子:
    (1)定义一个字符串表示时间
    String str=“2019-03-25 08:55:31”;
    (2)创建一个SimpleDateFormat对象,指定一个格式(这个格式必须和上面字符串格式相同)
    SimpleDateFormat sdf=new SimpleDateFormat(“yyyy-MM-dd HH-mm-ss”);
    (3) 调用SimpleDateFormat的Parse方法,将字符串转成一个Date对象
    Date date=sdf.parse(Str);
    (4)然后输出date就是默认的格式
    System.out.println(date);

  3. Calendar类
    Calendar叫做日历类,Calendar类中有更好的方法替换了Date类中的方法。
    Calendar是一个抽象类,如果要用,需要使用它的子类。要通过Calendar的静态方法getInstance进行获取
    Calendar获取日历对象的方法:
    stetic Calendar getInstance(): 获取一个Calendar子类对象,并将该子类对象返回
    例子:
    Calendar c=Calendar.getInstance();
    Systrem.out.println©; 输出的就是现在的时间瞬间(一大串东西)
    3.1在Calendar中有一个方法叫做int get(int field)来获取日历对象中指定字段的值
    例子:
    获取日历对象中【年】这个字段的值
    int year=c.get(Calendar.YEAR);
    获取日历对象中【月】这个字段的值
    int month =c.get(Calendar.MONTH)+1; 注意在Calendar中的月份是从0开始的,比生活中的月份少1.
    获取日历对象中【日】这个字段的值
    int day=c.get(Calendar.DATE);
    3.2在Calendar中还有一个方法叫做void set(int field,int value)来给指定字段设置值
    例子:
    把年这个字段的值设置成2012
    c.set(Calenmdar.YEAR,2012);
    把月这个字段的值设置成10月
    c.set(Calendar.MONTH,9);
    3.3在Calendar中还有一个方法叫void add(int field,int amount)对指定字段的值进行计算
    例子:
    c.add(Calendar.MONTH,10); 表示给当前月份加10个月,如果为负数,就表示减去10个月。
    3.4在Calendar中还有一个方法叫做Date getTime()将Calendar转成一个Date对象
    例子:
    Date date =c.getTime();
    然后输出的就是Date的默认格式

  4. System类
    System类表示系统类
    4.1static long currentTimeMillis()获取当前操作系统的时间(获取到的是毫秒值)
    例子:
    long millis=System.currentTimeMillis(); 获取到的时间就为从1970年1月1日8时0分0秒开始到现在的毫秒值
    4.2System中还有一个方法叫做static void arraycopy(原数组,原数组的起始位置,目标数组,目标数组的起始位置,复制元素的个数)对数组进行复制
    例子:
    int[] a={1,2,3,4,5};
    int[] b={6,7,8,9,10};
    System.arraycopy(a,0,b,o,3);表示把a中123复制到b的678位置
    System.out.println(a); 结果为 [1,2,3,4,5]
    System.out.println(b); 结果为 [1,2,3,9,10]

猜你喜欢

转载自blog.csdn.net/qq_44824292/article/details/88778415