常用API-Date类

java.util.Date:表示日期和时间的类
类 Date表示特定的瞬间,精确到毫秒, 毫秒:千分之一秒,1000毫秒=1秒
特点的瞬间,一个时间点,一刹那

毫秒值的作用:可以对时间和日期进行计算
例如:

  • 2019-01-01 到 2019-12-12 中间共多少天
  • 可以把日期转换为毫秒计算,计算完毕后,再把毫秒转换为日期
  • 把日期转换为毫秒
  • 当前日期:2019-12-12
  • 时间原点(0毫秒):1970年1月1日00:00:00(英国格林威治时间)
  • 就是计算当前日期到时间原点之间一共经历了多少毫秒

注意:

  • 中国属于东八区:时间增加8小时
  • 1970年1月1日08:00:00

把毫秒转换为日期:

  • 1天 = 24 x 60 x 60 = 86400秒 = 86400 x 1000 = 86400000毫秒

Date类中的常用方法

private static void demo01() {
    /*
    * Date类的空参构造方法
    * 获取当前系统的时间和日期
    * */
    Date date = new Date();
    System.out.println(date);//Thu Dec 26 17:30:14 CST 2019
}

private static void demo02() {
    /*
    *Date类的带参构造方法
    * Date(long date):传递毫秒值,把毫秒值转换为日期
    * */
    Date date = new Date(1577351975373L);
    System.out.println(date);//Thu Dec 26 17:19:35 CST 2019
}

private static void demo03() {
    /*
    * long getTime()把日期转换为毫秒值(相当于,System.currentTimeMillis()方法)
    * 返回自1970年1月1日00:00:00GMT以来此Date对象表示的毫秒数
    * */
    Date date = new Date();
    long time = date.getTime();
    System.out.println(time);//1577353065767
    System.out.println(System.currentTimeMillis());//1577353065767
}

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

作用:
格式化(也就是日期 -> 文本)、解析(文本 -> 日期)

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

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

注意:DateFormat类是一个抽象类,无法直接创建对象使用,可以使用其子类

java.text.SimpleDateFormat extends DateFormat

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

参数:

  • String pattern:传递的模式
  • 模式:区分大小写的
  • y 年 | M 月 | d 日
  • H 时 | m 分 | s 秒
  • 写对应的模式,会把模式替换为对应的日期和时间
  • “yyyy-MM-dd HH:mm:ss”
  • 注意:
  • 模式中的字母不能更改,连接模式的符号可以改变,如"yyyy年MM月dd日 HH时mm分ss秒"
public static void demo01(){
    /*
    * 使用DateFormat类中的方法format,把日期格式化为文本
    * 使用步骤:
    *       1.创建SimpleDateFormat对象,构造方法中传递指定的模式
    *       2.调用此对象中的方法format,按照构造方法中指定的模式,把Date日期格式化为符合模式的字符串(文本)
    * */
    //1.创建SimpleDateFormat对象,构造方法中传递指定的模式
    SimpleDateFormat sd = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
    Date date = new Date();
    //2.调用此对象中的方法format,按照指定模式,完成转换
    String s = sd.format(date);
    //打印输出
    System.out.println(date);// Thu Dec 26 22:26:08 CST 2019
    System.out.println(s);//    2019年12月26日 22时26分08秒
}

private static void demo02() throws ParseException {
    /*
    *使用DateFormat类中的方法parse,把文本解析为日期
    * 使用步骤:
    *       1.创建SimpleDateFormat对象,构造方法中传递指定的模式
    *       2.调用此对象中的方法parse,把符合构造方法中模式的字符串,解析为日期
    * 注意:parse方法声明了一个ParseException
    * */
    SimpleDateFormat sd = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
    String str = "2019年12月26日 22时26分08秒";
    Date date = sd.parse(str);
    System.out.println(date);//Thu Dec 26 22:26:08 CST 2019
}

练习:

/*
 * 计算一个人出生到现在的天数
 * */
    public static void main(String[] args) throws ParseException {
        //创建一个Scanner对象,输入出生日期
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入出生日期:格式为yyyy-MM-dd");
        String str = sc.next();
        //创建SimpleDateFormat对象,将输入的日期字符串转换为Date对象
        SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
        Date bir = sd.parse(str);
        //将此Date日期对象,转换为毫秒值
        long birTime = bir.getTime();
        //将当前时间转换为毫秒值
        long nowTime = new Date().getTime();
        //当前时间减去出生时间就是出生到现在天数的毫秒值
        long time = nowTime - birTime;
        //再把毫秒值换算为天数
        System.out.println(nowTime/1000/60/60/24);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值