日期类

124 阅读3分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第29天,点击查看活动详情

哈喽,大家好!我是Why,一名在读学生,目前刚刚开始进入自己的编程学习生涯。虽然学习起步较晚,但我坚信做了才有0或1的可能。学了一段时间以后也是选择在掘金上分享自己的日常笔记,也希望能够在众多道友的大家庭中打成一片。 本文主要讲解日期类,如果大家读后觉得有用的话,还请大家多多支持博主:欢迎 ❤️点赞👍、收藏⭐、留言💬 ✨✨✨个人主页:JinHuan

日期类

 1、获取系统当前时间(精确到毫秒的系统当前时间)
         Date nowTime = new Date();      
 2、date与String之间的转换
         2.1、 Date-->String
               String nowTimeStr = sdf.format(nowTime);
               System.out.println(nowTimeStr);
         2.2、 String-->Date
             String time = "2008-08-08 08:08:08 888";
             //SimpleDateFormat sdf2 = new SimpleDateFormat("格式不能随便写,要和日期字符串格式相同");
             // 注意:字符串的日期格式和SimpleDateFormat对象指定的日期格式要一致。
             //不然会出现异常:java.text.ParseException
             SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
             Date dateTime = sdf2.parse(time);
             
 3、日期的格式化
         SimpleDateFormat是java.text包下的。专门负责日期格式化的。
        /*
                 yyyy 年(年是4位)
                 MM 月(月是2位)
                 dd 日
                 HH 时
                 mm 分
                 ss 秒
                 SSS 毫秒(毫秒3位,最高999。1000毫秒代表1秒)
                 注意:在日期格式中,除了y M d H m s S这些字符不能随便写之外,剩下的符号格式自己随意组织。
           */     
 4、Date的Tostring方法
       java.util.Date类的toString()方法已经被重写了。
         // 输出的应该不是一个对象的内存地址,应该是一个日期字符串。
         //System.out.println(nowTime); //Thu Mar 05 10:51:06 CST 2020

栗子

 import java.text.SimpleDateFormat;
 import java.util.Date;
 ​
 public class DateTest01 {
     public static void main(String[] args) throws Exception {
 ​
         // 获取系统当前时间(精确到毫秒的系统当前时间)
         Date nowTime = new Date();
 ​
         //对期进行格式化
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
         //SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
         //SimpleDateFormat sdf = new SimpleDateFormat("yy/MM/dd HH:mm:ss");
 ​
         String nowTimeStr = sdf.format(nowTime);
         System.out.println(nowTimeStr);
         // String --> Date
         String time = "2008-08-08 08:08:08 888";
         SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
         Date dateTime = sdf2.parse(time);
         System.out.println(dateTime); //Fri Aug 08 08:08:08 CST 2008
     }
 }

耗时计算

 /*
 获取自1970年1月1日 00:00:00 000到当前系统时间的总毫秒数。
 1秒 = 1000毫秒
 ​
 简单总结一下System类的相关属性和方法:
     System.out 【out是System类的静态变量。】
     System.out.println() 【println()方法不是System类的,是PrintStream类的方法。】
     System.gc() 建议启动垃圾回收器
     System.currentTimeMillis() 获取自1970年1月1日到系统当前时间的总毫秒数。
     System.exit(0) 退出JVM。
  */
 public class DateTest02 {
     public static void main(String[] args) {
         // 获取自1970年1月1日 00:00:00 000到当前系统时间的总毫秒数。
         long nowTimeMillis = System.currentTimeMillis();
         System.out.println(nowTimeMillis); //1583377912981
 ​
         // 统计一个方法耗时
         // 在调用目标方法之前记录一个毫秒数
         long begin = System.currentTimeMillis();
         print();
         // 在执行完目标方法之后记录一个毫秒数
         long end = System.currentTimeMillis();
         System.out.println("耗费时长"+(end - begin)+"毫秒");
     }
 ​
     // 需求:统计一个方法执行所耗费的时长
     public static void print(){
         for(int i = 0; i < 1000000000; i++){
             System.out.println("i = " + i);
         }
     }
 }
 ​

获取昨天此刻的时间

 import java.text.SimpleDateFormat;
 import java.util.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区。差8个小时。
         System.out.println(strTime); // 1970-01-01 08:00:00 001
 ​
         // 获取昨天的此时的时间。
         Date time2 = new Date(System.currentTimeMillis() - 1000 * 60 * 60 * 24);
         String strTime2 = sdf.format(time2);
         System.out.println(strTime2); //2020-03-04 11:44:14 829
 ​
     }
 }