java基础---Date

Date

表示特定的瞬间,精确到毫秒。

毫秒:千分之一秒,1000毫秒=1秒

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

例如:2099-01-03 到 2189-01-01 中间一共有多少天

可以把日期转换为毫秒进行计算,计算完毕,再把毫秒转换为日期

将日期转换为毫秒

当前的时间:System.currentTimeMillis()

时间原点(0毫秒):1970年1月1日 00:00:00(英国格林威治)

就是计算当前日期到时间圆点之间一共经历了多少毫秒

public class DateDemo01 {
    public static void main(String[] args) {
        //获取当前系统时间到1970年1月1日 00:00:00经历了多少毫秒  1625380731781
        System.out.println(System.currentTimeMillis());
    }
}

将毫秒转换为日期

1天=24 * 60 * 60=86400秒=86400 * 1000=86400 000毫秒

注意:中国属于东八区,会把时间增加8个小时

1970年1月1日 08:00:00

Date的构造方法

Date类的空参数构造方法:

Date() 获取当前系统的日期和时间

import java.util.Date;

public class DateDemo02 {
    public static void main(String[] args) {
        demo01();
        demo02();
        demo03();

    }
/*
* Date类的空参数构造方法:
Date() 获取当前系统的日期和时间
* */
    public static void demo01() {
        Date date = new Date();
        System.out.println(date);  //Sun Jul 04 14:47:33 CST 2021
    }
    /*
    * Date类的带参构造方法:
    * Date(Long date):传递毫秒值,把毫秒转换为Date日期*/

    public static void demo02(){
        Date d1=new Date(0L);
        System.out.println(d1); //Thu Jan 01 08:00:00 CST 1970

        Date d2=new Date(1567896543L);//后面别忘记加L
        System.out.println(d2);//Mon Jan 19 11:31:36 CST 1970
    }
    /*
    * Date的成员方法
    * Long getTime() 把日期转换为毫秒(相当于System.currentTimeMillis())
    * 就是计算当前日期到时间圆点之间一共经历了多少毫秒
    * */
    public static void demo03(){
        Date dd=new Date();
        long time = dd.getTime();
        System.out.println(time);//1625381972728
    }
}

image-20210704150936222

注意:模式中的字母不能更改,连接模式的符号可以改变

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateFormatDemo01 {
    public static void main(String[] args) throws ParseException {
        demo01();
        demo02();
    }
    /*使用DateFormat类中的方法format,把日期格式化为文本
    String format​(Date date) 将日期格式化成日期/时间字符串
    使用步骤:
        1、创建SimpleDateFormat对象,构造方法中传递指定的格式
        2、调用SimpleDateFormat中的format方法,按照构造方法中传递指定的格式,把Date日期格式化为符合模式的字符串
     */
    public static void demo01(){
        //1、创建SimpleDateFormat对象,构造方法中传递指定的格式
        //SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //2021-07-04 15:32:34
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");//2021年07月04日 15时34分03秒
        //2、调用SimpleDateFormat中的format方法,按照构造方法中传递指定的格式,把Date日期格式化为符合模式的字符串
        Date d1=new Date();
        String text = sdf.format(d1);
        System.out.println(text);
    }
    /*使用DateFormat类中的方法format,把文本解析为日期
    Date parse​(String text, ParsePosition pos) 从字符串中解析文本以产生一个 Date 。
    使用步骤:
        1、创建SimpleDateFormat对象,构造方法中传递指定的格式
        2、调用SimpleDateFormat中的parse方法,按照构造方法中传递指定的格式,把Date日期格式化为符合模式的字符串
     */

    public static void demo02() throws ParseException {
        //1.创建SimpleDateFormat对象,构造方法中传递指定的格式
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
        //2、调用SimpleDateFormat中的parse方法,按照构造方法中传递指定的格式,把Date日期格式化为符合模式的字符串
        Date date = sdf.parse("2018年11月22日 12时22分45秒");
        System.out.println(date); //Thu Nov 22 12:22:45 CST 2018
    }
    /*注意:public static void demo02() throws ParseException 抛出一个异常*/
    /*如果你输入的字符串和你指定的模式不匹配会报错*/
}

案例:计算一个人出生了多少天

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

/*计算一个人出生了多少天
* 思路:1、获取当前时间对应的毫秒值
* 2、获取自己生日日期对应的毫秒值
* 3、两个时间相减(当前时间-出生日期)*/
public class Demo03 {
    public static void main(String[] args) throws ParseException {
        //获取当前时间对应的毫秒值
        long date=new Date().getTime();
        //获取自己生日日期对应的毫秒值
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入出生日期:yyyy-MM-dd");
        String birth=sc.next();
        //调用方法将字符串转换为日期
        long time=demo1(birth);
        //计算结果
         long t=date-time;
         //将结果转换为天数
        t=t/1000/60/60/24;
        System.out.println(t);
    }
    public static long demo1( String birth) throws ParseException {
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
        Date date = sdf.parse(birth);
        //将日期转为毫秒
        long time = date.getTime();
        return time;
    }
}

构造方法

Date(); 根据当前系统时间创建日期对象
Date(long time); 根据传入的毫秒值时间创建日期对象

成员方法

long getTime();  获取当前日期对象的亳秒值时间

DateFormat类&SimpleDateFormat类

构造方法

SimpleDateFormat(String s);根据指定模板创建 日期格式化对象

成员方法

String format(Date d);根据指定格式格式化日期对象
Date parse(String S);根据指定格式解析字符串

DateFormat类&SimpleDateFormat类

构造方法

SimpleDateFormat(String s);根据指定模板创建 日期格式化对象

成员方法

String format(Date d);根据指定格式格式化日期对象
Date parse(String S);根据指定格式解析字符串
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值