zoukankan      html  css  js  c++  java
  • [javaSE笔记7]Date, DateFormat, Calendar类

    Date类

    java.util.Date

    Date表示特定的时间, 精确到毫秒

    时间原点 ( 0m ) : 1970年1月1日 00:00

    构造方法

    空参构造方法 : 获取当前系统的日期和时间

    Date date = new Date();
    

    带参数构造方法 :

    Date ( long date ) : 传递毫秒值, 把毫秒值转换为日期

    Date date = new Date(0);
    System.out.println(date);
    
    // 输出Thu Jan 01 08:00:00 CST 1970
    

    成员方法

    getTime()

    把日期转换为毫秒

    DateFormat类

    java.text.DateFormat类是日期/时间格式化子类的抽象类

    可以完成日期和文本之间的转换

    构造和成员方法

    String format(Date date) : 按照指定的模式把Date日期格式化为符合模式的字符串

    Date parse(String source) : 把符合模式的字符串解析为Date日期

    DateFormat类是一个抽象类, 无法直接创建对象使用, 可以使用DateFormat的子类 : java.text.SimpleDateFormat

    SimpleDateFormat的构造方法 :

    SimpleDateFormat(String pattern) : 用指定的模式和默认语言环境的日期格式符号构造SimpleDateFormat

    常用的格式规则 :

    字母 含义
    y
    M
    d
    H
    m
    s

    SimpleDateFormat的format和parse方法

    format :

    1. 创建SimpleDateFormat对象并在构造方法中传递指定的模式
    2. 使用format方法把Date转换为符合模式的字符串

    e.g.

    Date date =  new Date();
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    String format = sdf.format(date);
    System.out.println(format);
    
    // 输出 : 2020-06-25 08:34:48
    

    parse :

    1. 创建SimpleDateFormat对象并在构造方法中传递指定的模式
    2. 使用parse方法把符合模式的字符串解析为Date日期

    注意 : parse方法声明了一ParseException解析异常, 如果字符串和构造方法中的模式不一样程序就会抛出此异常

    e.g.

            String text = "2020-06-25 08:34:48";
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date date = sdf.parse(text);
            System.out.println(date);
            System.out.println(date.getTime());
    
    /* 输出 : 
    Thu Jun 25 08:34:48 CST 2020
    1593045288000
    */
    

    Calendar类

    Java.util.Calendar

    Calendar类是一个抽象类, 里面提供了很多操作日历字段的方法 ( YEAR, MONTH, DAY_OF_MONTH. HOUR ...)

    Calendar类无法直接创建对象使用, 里面有一个静态方法getInstance(), 该方法返回了Calendar类的子类对象

    Calendar类的常用成员方法

    1. public int get(int field) : 返回给定日历字段的值

    2. public void set(int field, int value) : 将给定日历字段设置为给定值

    3. public abstract void add(int field, int amount) : 根据日历的规则, 为给定的日历字段添加或减去指定的时间量

    4. public Date getTime() : 返回一个表示此Calendar时间值的Date对象

    其中的int field 是日历字段如YEAR, MONTH...可直接用Calendar.YEAR....获取

    • get的使用 :

    e.g.

            Calendar c = Calendar.getInstance();
            System.out.println(c.get(Calendar.YEAR)); // 2020
            System.out.println(c.get(Calendar.DATE)); // 25 
    
    • set和getTime的使用 :

    e.g.

     		Calendar c = Calendar.getInstance();
            c.set(2000,8,7);
            Date date = c.getTime();
    
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    
            System.out.println(sdf.format(date));
    
    // 2000-09-07
    
    • add的使用 :

    e.g.

            Calendar c = Calendar.getInstance();
            c.set(2000,8,7);
            c.add(Calendar.YEAR,-1); //2000 -- 1999
            Date date = c.getTime();
    
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    
            System.out.println(sdf.format(date));
    
    // 1999-09-07
    
  • 相关阅读:
    PAT 1005. 继续(3n+1)猜想 (25)
    PAT 1004. 成绩排名 (20)
    android小游戏 飞机躲子弹
    PAT 1004. 成绩排名 (20) JAVA
    PAT 1003. 我要通过!(20) JAVA
    PAT 1003. 我要通过!(20)
    PAT 1002. 写出这个数 (20)
    NEERC, Northern Subregional Contest 2012 B 乱搞or搜索
    SGU 167 未解 dp
    Bucharest, Romania 2013 A Russian Dolls 贪心
  • 原文地址:https://www.cnblogs.com/roccoshi/p/13191120.html
Copyright © 2011-2022 走看看