欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

day14Java-常用对象Date

程序员文章站 2022-05-09 13:17:31
...

常用对象Date

博客名称 链接
day16Java-常用对象总结 https://blog.****.net/qq_40332952/article/details/104805557

常用对象Date-构造方法

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

构造方法:
Date():根据当前的默认毫秒值创建日期对象
Date(long date):根据给定的毫秒值创建日期对象
代码演示

public class DateDeom {
    public static void main(String[] args) {
        //创建对象
        Date d1 = new Date();
        System.out.println("d1--"+d1);

        //创建对象
        long time = 1000*60*60;
        Date d2 = new Date(time);
        System.out.println("d2--"+d2);
        
    }
}

结果:

d1--Fri Mar 13 22:34:53 CST 2020
d2--Thu Jan 01 09:00:00 CST 1970

常用对象Date-成员方法

public long getTime():获取时间,以毫秒为单位
public void setTime(long time):设置时间

从Date得到一个毫秒值
getTime()
把一个毫秒值转换为Date
构造方法
setTime(long time)

代码演示

public class DateDeom {
    public static void main(String[] args) {
        Date d = new Date();
        //public long getTime():获取时间,以毫秒为单位
        System.out.println("getTime()--"+d.getTime());
        System.out.println("currentTimeMillis()--"+System.currentTimeMillis());
        //public void setTime(long time):设置时间
        d.setTime(1000*60*60*24);
        System.out.println("d--"+d);
    }
}

结果:

getTime()--1584147319489
currentTimeMillis()--1584147319592
d--Fri Jan 02 08:00:00 CST 1970

常用对象Date-Date和日期字符串相互转换

public class DateDeom {
    public static void main(String[] args) throws ParseException {

        //Date ---- String
        //创建日期对象
        Date d = new Date();
        //创建格式化对象(无参)
        SimpleDateFormat sdf1 = new SimpleDateFormat();
        String format1 = sdf1.format(d);
        System.out.println("未指定日期格式构造方法format()--"+format1);

        //创建格式化对象(带参)
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年-MM月-dd日 HH:mm:ss");
        String format12 = sdf2.format(d);
        System.out.println("指定日期格式构造方法format()"+format12);

        System.out.println("--------------------");
        //String ---- Date
        String time = "2018-08-08 12:12:12";
        SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date dd = sdf3.parse(time);
        System.out.println(dd);
    }
}

结果:

未指定日期格式构造方法format()--2020/3/14 上午9:32
指定日期格式构造方法format()2020年-03月-14日 09:32:28
--------------------
Wed Aug 08 12:12:12 CST 2018

Date和日期字符串相互转换图解
day14Java-常用对象Date

常用对象Date-日期对象和字符串相互转换工具类

工具类

/**
 * 这是一个日期对象和字符串相互转换工具类
 *
 * @author jiangwh
 * @version 1.0
 * @date 2020/3/14 9:53
 */
public class DateUtils {

    /**
     * 将日期转化为指定字符串格式日期
     *
     * @return
     * @author jiangwh
     * @date 2020/3/14 10:57
     */
    public static String dateToString(Date d, String format) {
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(d);
    }

    /**
     * 将字符串日期转为为指定格式的日期对象
     * @author jiangwh
     * @return
     * @date 2020/3/14 11:01
     */
    public static Date stringToDate(String str, String format) throws ParseException {
        return new SimpleDateFormat(format).parse(str);
    }
}

测试类

/**
 * 测试工具类
 * @author jiangwh
 * @version 1.0
 * @date 2020/3/14 11:14
 */
public class DateUtilsTest {
    public static void main(String[] args) throws ParseException {
        //将日期对象转化为日期字符串
        Date d1 = new Date();
        Date d2 = new Date(1000*60*60*48);

        String s1 = DateUtils.dateToString(d1, "yyyy-MM-dd HH:mm:ss");
        String s2 = DateUtils.dateToString(d2, "yyyy-MM-dd HH:mm:ss");
        System.out.println("s1--"+s1);
        System.out.println("s2--"+s2);

        System.out.println("------------------------");
        //将字符串转化为日期对象
        //定义一个字符串格式时间
        String s3 = "2020-01-01 20:20:20";
        //定义日期格式
        String format ="yyyy-MM-dd HH:mm:ss";
        Date d3 = DateUtils.stringToDate(s3, format);
        System.out.println("s3--"+d3);
    }
}

结果:

s1--2020-03-14 11:25:59
s2--1970-01-03 08:00:00
------------------------
s3--Wed Jan 01 20:20:20 CST 2020

练习1

需求:计算我来了这个世界多少天了

分析:
1.使用键盘录入作为出生日期
2.将出生日期字符串转化为Date对象
3.并调用getTime()方法返回1970年到出生日期的毫秒值
4.在使用System类获取当前时间毫秒值
5.把第四步骤减去第三步骤就是出生到当前时间的毫秒值

public class DateDeom {
    public static void main(String[] args) throws ParseException {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输出你的出生年月");
        String time = sc.nextLine();

        //创建日期格式化对象
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        //分析日期字符串返回Date对象
        Date date = sdf.parse(time);
        //调用getTime方法
        long mill = date.getTime();
        //获取当前时间毫秒值
        long mill2 = System.currentTimeMillis();
        System.out.println("你出生了"+(mill2-mill)/1000/60/60/24+"天");
    }
}

结果:

请输出你的出生年月
1996-11-08
你出生了8527天
相关标签: Java相关知识