日期类

Posted yxc-160206

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了日期类相关的知识,希望对你有一定的参考价值。

日期类

获取系统当前时间

  • 获取系统当前时间:Date d = new Date();
public class DateTest01 {
    public static void main(String[] args) {
//        获取系统当前时间(精确到毫秒的系统当前时间)
//        直接调用无参数构造方法
        Date nowTime = new Date();

//        java.util.Date类的toString()方法已经被重写了。
//        输出的应该不是一个对象的内存地址,应该是一个日期字符串
        System.out.println(nowTime);//Sun Jul 05 08:00:14 CST 2020
        System.out.println(nowTime.toString());//Sun Jul 05 08:00:14 CST 2020       
    }
}

日期格式化

  • 日期格式化:Date --> String (yyyy-MM-dd HH:mm:ss SSS)
SimpleDateFormat sdf = new SimpleDate("yyyy-MM-dd HH:mm:ss SSS");
String s = sdf.format(new Date());
格式 含义
yyyy 年(年是4位)
MM 月(月是2位)
dd
HH
mm
ss
SSS 毫秒(毫秒3位,最高999。1000毫秒代表1秒)
  • 注意:在日期格式中,除了年月日时分秒毫秒对应的格式不能随便写之外,剩下的符号格式可以随意组织。
public class DateTest01 {
    public static void main(String[] args) {
//        获取系统当前时间(精确到毫秒的系统当前时间)
//        直接调用无参数构造方法
        Date nowTime = new Date();
        
//        日期格式化:将日期类型Date,按照指定格式进行转换成为String
//        SimpleDateFormat是Java.text包下的。专门负责日期格式化的。
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
        String nowTimeStr = sdf.format(nowTime);
        System.out.println(nowTimeStr); //2019-07-05 10:43:37 507
    }
}

String转换成Date

SimpleDateFormat sdf = new SimpleDate("yyyy-MM-dd HH:mm:ss");
Date d = sdf.parse("2008-08-08 08:08:08");
  • 注意:字符串的日期格式和SimpleDateFormat对象的格式要一致。不然会出现异常:java.text.ParseException
public class DateTest01 {
    public static void main(String[] args) throws Exception {
//        String转换成Date
        String time="2008-08-08 08:08:08 888 ";
//        SimpleDateFormat sdf1 = new SimpleDateFormat("格式不能随便写,要和日期字符串格式相同");
        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
        Date dateTime= sdf1.parse(time);
        System.out.println(dateTime); //Fri Aug 08 08:08:08 CST 2008
    }
}

获取总毫秒数

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

    public class DateTest02 {
        public static void main(String[] args) {
    //        获取自1970年1月1日 00:00:00 000到当前系统时间的总毫秒数
            long nowTimeMillis = System.currentTimeMillis();
            System.out.println(nowTimeMillis); //1593918468733
        }
    }
    
    
  • 需求:统计一个方法执行所耗费的时长

public class DateTest02 {
    public static void main(String[] args) {
//        统计一个方法耗时
//        在调用目标方法之前记录一个毫秒数
        long begin = System.currentTimeMillis();
        print();
//        在执行目标方法之后记录一个毫秒数
        long end = System.currentTimeMillis();
//        该方法执行所耗费的时长
        System.out.println("耗时时长" + (end - begin) + "毫秒"); //90
    }

    //    需求:统计一个方法执行所耗费的时长
    public static void print() {
        for (int i = 0; i < 1000; i++) {
            System.out.println("i =" + i);
        }
    }
}

System类的相关属性和方法

  • System.outoutSystem类的静态变量
  • System.out.println()println()方法不是System类的,是PrintSteam类的方法。
  • System.gc():建议启动垃圾回收器
  • System.currentTimeMillis(): 获取自1970年1月1日到系统当前时间的总毫秒数。
  • System.exit(0):退出JVM

通过毫秒构造Date对象

public class DateTest03 {
    public static void main(String[] args) {
//        1970-01-01 00:00:00 001
        Date time = new Date(1);//注意:参数是一个毫秒
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
        String strTime=sdf.format(time);
//        北京是东八区,差8小时
        System.out.println(strTime); //1970-01-01 08:00:00 001
    }
}
  • 获取昨天此时的时间

    public class DateTest03 {
        public static void main(String[] args) {      
    //        获取昨天的此时的时间
            Date time = new Date(System.currentTimeMillis() - 1000 * 60 * 60 * 24);
             SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
            String strTime = sdf.format(time);
            System.out.println(strTime); //2019-07-04 11:36:57 087
        }
    }
    

以上是关于日期类的主要内容,如果未能解决你的问题,请参考以下文章

常用python日期日志获取内容循环的代码片段

JS代码片段:一个日期离现在多久了

sql 日期转换代码片段 - Dato,120,konvertere

日期选择器对话框在片段中不起作用[关闭]

Android Navigation java.language.IllegalStateException 片段类未设置

vscode 用户代码片段 vue初始化模板 Snippet #新加入开头注释 自动生成文件名 开发日期时间等内容