第二节 日期时间类

1.Date类

Date类概述
    * Date类是一个日期类
    * 通过该类可以获得时间和日期信息。

Date类构造方法
    * Date() 获得当前的系统时间对象。
    * Date(long time) 根据指定的毫秒值创建日期对象

Date类的成员方法
    * long getTime(); 获得当前时间对象的毫秒值

示例代码

public class DateDemo01 {
    public static void main(String[] args){
        // 创建日期对象
        Date d = new Date();
        // Sun Jun 03 10:19:03 CST 2018

        // 2018-06-03 10:19:03 ==> DateFormat
        // 2018/06/03 10:19:03
        System.out.println(d);
        // 获得当前时间的毫秒值: 1527992568696
        System.out.println(d.getTime());

        // 根据毫秒值创建日期对象
        Date date = new Date(1527992568696L);
        // Thu Jan 01 08:00:01 CST 1970
        System.out.println(date);
    }
}

2.DateFormat类

DateFormat类概述
    * 是一个日期格式化类,是一个抽象类,不能直接创建该类对象,只能创建子类对象。

DateFormat类常用子类
    * SimpleDateFormat

SimpleDateFormat类常见操作
    * 将日期对象格式为字符串
    * 将字符串格式化为日期对象

SimpleDateFormat类构造方法
    * SimpleDateFormat() 创建日期格式化对象,使用默认的日期模式。
    * SimpleDateFormat(String pattern) 根据指定的日期模式创建日期格式化对象。

SimpleDateFormat类成员方法
    * String format(Date d) 将日期对象转换为字符串
    * Date parse(String str); 将字符串转换为日期对象
    * void	applyPattern(String pattern) 修改日期模式

日期模式
    * yyyy   年
    * MM     月
    * dd     日
    * HH     时    hh:12小时制  HH:24小时制
    * mm     分
    * ss     秒
    * EE	 周

示例代码

/* 
日期对象转字符串的步骤
        * 创建SimpleDateFormat日期格式化对象并指定日期模式
        * 调用格式化对象的format方法传递日期对象获得字符串。
 */
public class DateFormatDemo01 {
    public static void main(String[] args){
        // 获得当前系统日期对象
        Date d = new Date();
        // 创建日期格式化对象
        // 2018/06/03 10:19:03
        // SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
        // 2018-06-03
        // SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

        // 2018年06月03日 10时20分30秒
        //SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");

        // 创建日期格式化对象
        SimpleDateFormat sdf = new SimpleDateFormat();
        // 修改日期模式
        sdf.applyPattern("yyyy-MM-dd");
        // Date ==> String
        // 2018/6/3 上午10:47
        String dStr = sdf.format(d);
        System.out.println(dStr);


        // 再次修改日期模式
        sdf.applyPattern("HH:mm:ss");
        System.out.println(sdf.format(d));

    }
}

字符串转日期对象

/**
    字符串转换为日期对象的步骤
        * 创建日期格式化对象并指定日期模式
        * 调用日期格式化对象的parse方法传递日期对象获得字符串。

    字符串转换为日期对象注意事项
        * 创建日期格式对象时指定的日期模式要和字符串的日期格式一致。
 */
public class DateFormatDemo02 {
    public static void main(String[] args) throws ParseException {
        // 日期字符串
        String dateStr = "2018-06-10 10:20:30";
        // 创建日期格式化对象
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        // String ==> Date 获得对应时间的Date类
        Date date = sdf.parse(dateStr);
        System.out.println(date);
    }
}

3.Calendar类

  • 常用方法
Calendar类概述
    * 是一个日历类,也是一个抽象类,不能直接创建该类对象,只能创建子类对象。
    * 通过该类也可以获得时间和日期信息

如何获得日历对象
    * 通过调用Calendar类的静态方法获得,静态方法如下:
        * static Calendar getInstance()

Calenar类的成员方法
    * int get(int field); 根据指定的日历字段获得对应的值
    * void set(int field,int value);
        * 修改指定日历字段的值为指定值
    * void add(int field,int value);
        * 将指定日历字段的值在当前值的基础上偏移一个值,正数向后偏移,负数向前偏移
    * Date getTime(); 获得日期对象
    * long getTimeInMillis() 获得当前时间毫秒值
    * void set(int year,int month,int date) 修改年月日

示例代码

public class CalendarDemo01 {
    public static void main(String[] args){
        // 获得日历对象
        Calendar c = Calendar.getInstance(); // c = new GregorianCalendar();
        // c ==> java.util.GregorianCalendar
        System.out.println(c);

        // 获得毫秒值
        System.out.println(c.getTime().getTime());
        System.out.println(c.getTimeInMillis());


        // set:修改指定日历字段的值
        c.set(Calendar.YEAR,2020);
        c.set(Calendar.MONTH,12);
        c.set(Calendar.DATE,32);

        // 修改年月日
        c.set(2000,2,20);

        // add:将指定日历字段的值在当前值的基础上偏移一个值,正数向后偏移,负数向前偏移
        c.add(Calendar.YEAR,-1);

        // 获得年
        System.out.println(c.get(Calendar.YEAR)); // 2018
        // 获得月
        System.out.println(c.get(Calendar.MONTH)+1); // 6
        // 获得日
        System.out.println(c.get(Calendar.DATE)); // 
        // 获得时
        System.out.println(c.get(Calendar.HOUR)); // 11
        // 获得分
        System.out.println(c.get(Calendar.MINUTE)); // 31
        // 获得秒
        System.out.println(c.get(Calendar.SECOND)); // 49
    }
}

2.4 例子

请使用日期时间相关的API,计算出一个人已经出生了多少天。

  // 需求:请使用日期时间相关的API,计算出一个人已经出生了多少天。
        // 生日: 1998-12-30
        String str = "1998-12-30";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date dt = sdf.parse(str);
        long birthdatTime = dt.getTime(); // 时间毫秒值
        // 获取此刻时间毫秒值
        long currentTime = new Date().getTime();
        // 走过的总的时间毫秒值
        long rs = currentTime - birthdatTime;
        // 换算成天
        double alldays = rs * 1.0 / (24 * 60 * 60 * 1000) ;
        System.out.println(alldays);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值