当前位置: 移动技术网 > IT编程>开发语言>Java > Java中日期类Date的使用

Java中日期类Date的使用

2020年07月16日  | 移动技术网IT编程  | 我要评论

日期类Date的使用

(1)日期类Date的实例化及输出转换:

测试代码:

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

public class Test01 {
    public static void main(String[] args) throws Exception{
        //实例化一个日期对象
        Date nowTime = new Date();

        //输出日期,Date对象已经重写了toString()方法
        System.out.println(nowTime);  //Wed Jul 15 08:27:35 CST 2020

        //上面输出的日期虽然信息很全,但样式不太好看,日期可以格式化吗?也就是可以转换吗?
        //SimpleDateFormat是java.text包下的,专门负责日期格式化的。
        //将日期格式化,需按照指定的格式进行转换:Date--指定日期格式字符串--String

        /*
        * yyyy 年(年是4位)
        * MM 月(月是2位)
        * dd 日
        * HH 时
        * mm 分
        * ss 秒
        * SSS 毫秒
        * 注意:在日期格式中,除了y M d H m s S这些字母不能随便写之外,其他字母符号可以随便组织编写
        * */

        //标准的格式:"yyyy-MM-dd HH:mm:ss SSS"
        String str = "yyyy-MM-dd HH:mm:ss SSS";
        SimpleDateFormat sdf = new SimpleDateFormat(str);
        
        //调用sdf的format()方法
        String nowTimeString = sdf.format(nowTime);
        System.out.println(nowTimeString);  //2020-07-15 08:27:35 963


        //上面讲的是Date类型转换成String字符串型表示
        //那一个日期字符串可以转换成Date类型吗?当然可以
        String nowTimeString1 = "2008/08/08 08:08:08";
        
        //SimpleDateFormat sdf1 = new SimpleDateFormat("这里的格式现在不能乱写,需和上面要转换的格式相同");
        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");  //建议不要加毫秒,不然会影响数据,你可以尝试一下
        
        //String --> Date需格式匹配,不然会报异常,系统要求抛出异常
        Date nowTime1 = sdf1.parse(nowTimeString1);
        System.out.println(nowTime1);  //Fri Aug 08 08:08:08 CST 2008
    }
}

(2)获取自1970年1月1日 00:00:00 000 到当前系统时间的 总毫秒数。
1秒 = 1000毫秒。

使用System.currentTimeMillis()方法,静态无参数方法,返回long类型数字。

使用此方法,可以测试一个函数的执行时间。

测试代码:

public class Test02 {
    public static void main(String[] args) {
        long nowTimeMillis = System.currentTimeMillis();
        System.out.println(nowTimeMillis);  //1594774591280

        //此方法可以测试一个方法的执行时间
        long startTime = System.currentTimeMillis();
        doSome();
        long endTime = System.currentTimeMillis();
        System.out.println("doSome()方法执行所花时间为:" + (endTime-startTime) + "毫秒");  //377毫秒,每次运行时间可能不一样

    }

    private static void doSome() {
        for (int i = 0; i < 10000; i++) {
            System.out.println(i);
        }
    }
}

(3)关于Date对象的有参数构造方法:

new Date(long ms) 参数ms是自从1970/01/01 00:00:00 000开始计时的毫秒数

测试代码:

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

public class Test03 {
    public static void main(String[] args) {
        Date time = new Date(1);  //这里的1,是1毫秒

        String str = "yyyy/MM/dd HH:mm:ss SSS";
        SimpleDateFormat sdf = new SimpleDateFormat(str);

        String timeString = sdf.format(time);
        System.out.println(timeString);  //1970/01/01 08:00:00 001  其中多了8个小时,是因为时差问题

        // 那这个构造方法有什么用呢?我怎么知道指定多少毫秒呢?看下面问题
        // 获取昨天的此时的时间
        Date yesterdayTime = new Date(System.currentTimeMillis() - 1000 * 60 * 60 * 24);
        String timeString1 = sdf.format(yesterdayTime);
        System.out.println(timeString1);

        //同样也能获取去年的此时时间
        //这里不再演示,上面减去的数乘365即可

    }
}

总结:

(1)获取系统当前时间:Date nowTime = new Date();
System.out.println(nowTime); //Wed Jul 15 08:27:35 CST 2020

(2)将Date对象格式化成我们想要的格式:
String str = “yyyy-MM-dd HH:mm:ss SSS”;
SimpleDateFormat sdf = new SimpleDateFormat(str);
String nowTimeString = sdf.format(nowTime);
System.out.println(nowTimeString); //2020-07-15 08:27:35 963

(3)获取自1970年1月1日 00:00:00 000 到当前系统时间的 总毫秒数。使用System.currentTimeMillis()方法,静态无参数方法,返回long类型数字。

可以测试一个函数的执行时间。

(4)Date对象的有参数构造方法:new Date(long ms);
参数ms是自从1970/01/01 00:00:00 000开始计时的毫秒数。

可以获取昨天的此时的时间。

本文地址:https://blog.csdn.net/pipizhen_/article/details/107353213

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网