Javase | Date类、SimpleDateFormat类、System类

1.Date类( 日期类 )

1.1 Date类的 构造方法

public Date( )

  • public Date( ) : 无参构造方法,创建Date对象

  • 输出的Date对象系统当前日期时间

       //创建Date对象
       Date nowTime = new Date(); 
    
        //输出系统当前的“日期和时间”
       //Date类中的toString()方法被重写了,所以此处输出的不是一个内存地址,应是一个日期字符串。
       System.out.println(nowTime); //Thu Sep 14 14:36:24 CST 2023
    

public Date( long date )

  • public Date( long date ) : 有参构造方法,通过 指定的毫秒数创建Date对象

       //有参构造方法,通过“指定的毫秒数”创建Date对象
    
       /*
       这个时间是: 1970-01-01 00:00:00 001 (格林尼治时间),
       通过下面的时间格式转换,可以验证
       */
       Date date = new Date(1); //注意: 参数 1 是一个毫秒数
    
       SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
       String format = sdf.format(date);
       System.out.println(format); //1970-01-01 08:00:00 001 (北京时间)
    

2.SimpleDateFormat类 (简单日期格式类)

2.1 SimpleDateFormat类 的定义

  • SimpleDateFormat (简单日期格式类) : 在Java.text包下的,专门 负责日期格式化

2.2 SimpleDateFormat的 构造方法

SimpleDateFormat( )

  • SimpleDateFormat( ) : 无参构造方法,创建出SimpleDateFormat对象。
   //SimpleDateFormat 在Java.text包下的,专门负责日期格式化。
   SimpleDateFormat sdf = new SimpleDateFormat();

SimpleDateFormat( String pattern )

  • SimpleDateFormat( String pattern ) : 有参构造方法,用 给定的模式默认语言环境 日期格式符号 构造SimpleDateFormat对象

  • 构造方法中参数 : 日期格式符号即参数中传入的内容为 : 日期格式符号,以此来创建“简单日期格式”对象

  • SimpleDateFormat 可结合 .format(Date date) 方法能得到指定格式的“日期信息”。
    format( ) 方法是SimpleDateFormat的父类 : DateFormat的方法。

     	     //创建Date对象
            Date nowTime = new Date();
            /*
               日期格式符号:
               yyyy 年
               MM   月
               dd   日
               HH   时
               mm   分
               ss   秒
               SSS  毫秒
    
              完整表示年月日时间秒的日期格式符号 : yyyy-MM-dd HH:mm:ss:SSS
             */
            //该构造方法中的参数为“日期格式符号”,以指定的日期格式来创建简单日期格式对象
    SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
            SimpleDateFormat sdf3 = new SimpleDateFormat("dd/MM/yyyy");
            SimpleDateFormat sdf4 = new SimpleDateFormat("yy/MM/dd HH:mm:ss");
    
            // 调用.format()方法 输出指定格式的"时间信息"
            String format2 = sdf2.format(nowTime);
            String format3 = sdf3.format(nowTime);
            String format4 = sdf4.format(nowTime);
    
            System.out.println(format2); //2023-09-13 20:24:48:243
            System.out.println(format3); //13/09/2023
            System.out.println(format4); //23/09/13 20:24:48
    

日期格式符号

  • 日期格式符号最常用的是:

    yyyy 年
    MM 月
    dd 日
    HH 时
    mm 分
    ss 秒
    SSS 毫秒 (最高三位,最高999,1000毫秒代表1秒)

  • 完整表示年月日时间秒的日期格式符号 : yyyy-MM-dd HH:mm:ss:SSS

字母 日期或时间元素 表示 示例
G Era 标志符 Text AD
y Year 1996; 96
M 年中的月份 Month July; Jul; 07
w 年中的周数 Number 27
W 月份中的周数 Number 2
D 年中的天数 Number 189
d 月份中的天数 Number 10
F 月份中的星期 Number 2
E 星期中的天数 Text Tuesday; Tue
a Am/pm 标记 Text PM
H 一天中的小时数(0-23) Number 0
k 一天中的小时数(1-24) Number 24
K am/pm 中的小时数(0-11) Number 0
h am/pm 中的小时数(1-12) Number 12
m 小时中的分钟数 Number 30
s 分钟中的秒数 Number 55
S 毫秒数 Number 978
z 时区 General time zone Pacific Standard Time; PST; GMT-08:00
Z 时区 RFC 822 time zone -0800

3.将“Date类型”转换为“日期字符串String”

  • 第一步:创建 SimpleDateFormat ( 日期格式符号 ) 对象。

  • 第二步:调用SimpleDateFormat父类:DateFormat 的方法 :format( Date date),来将Date转换为“日期字符串String” (指定格式的“日期信息”)。

  • 注意点:

    new SimpleDateFormat( 日期格式符号 ) 中的参数为:日期格式符号

    format( Date date )方法中的参数为:Date对象

  • 例子如:

    	    //创建Date对象
            Date date = new Date();
            /*
               日期格式符号:
               yyyy 年
               MM   月
               dd   日
               HH   时
               mm   分
               ss   秒
               SSS  毫秒
    
              完整表示年月日时间秒的日期格式符号 : yyyy-MM-dd HH:mm:ss:SSS
             */
            //该构造方法中的参数为“日期格式符号”,以指定的日期格式来创建简单日期格式对象
    SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
            SimpleDateFormat sdf3 = new SimpleDateFormat("dd/MM/yyyy");
            SimpleDateFormat sdf4 = new SimpleDateFormat("yy/MM/dd HH:mm:ss");
    
            // 调用.format()方法 输出指定格式的"时间信息"
            String format2 = sdf2.format(date);
            String format3 = sdf3.format(date);
            String format4 = sdf4.format(date);
    
            System.out.println(format2); //2023-09-13 20:24:48:243
            System.out.println(format3); //13/09/2023
            System.out.println(format4); //23/09/13 20:24:48
    

4.将“日期字符串String”转换为“Date类型”

  • 第一步:创建 SimpleDateFormat ( 日期格式符号 ) 对象。

  • 第二步:调用SimpleDateFormat父类:DateFormat 的方法 : parse( String pattern ),来将 “日期字符串String ”转换为 “Date类型”。

  • 注意点:

    new SimpleDateFormat( 日期格式符号 ) 中的参数为:日期格式符号。但该“日期格式符号不能随便写,要和 “日期字符串格式相同,不然会出现异常。

    parse( String pattern)方法中的参数为:日期格式字符串String

  • 例子如:

       //假设现在有一个日期字符串String,怎么转换为Date类型?
       String time = "2008-08-08 08:08:08 888";
       SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
       
       //调用parse()方法将"日期字符串String"转换为Date类型
       Date date = sdf.parse(time);
       System.out.println(date); //Fri Aug 08 08:08:08 CST 2008
    

5.实际功能需求:

需求 : 怎么获取自1970年1月1日 00:00:00 000到“当前系统时间”的总毫秒数

   //获取自1970年1月1日 00:00:00 000到当前系统时间的总毫秒数。
   //1秒 = 1000毫秒
   long nowTimeMillis = System.currentTimeMillis();
   System.out.println(nowTimeMillis); //1694666718586

需求:统计一个方法执行所耗费的时长

public class DateTest {
    
    
    public static void main(String[] args) {
    
    


        //统计一个方法执行所耗费的时长
        //在调用目标方法之前记录一个毫秒数
        long begin = System.currentTimeMillis();
        print();
        //在执行完目标方法之后记录一个毫秒数
        long end = System.currentTimeMillis();
        System.out.println("耗费的时长"+(end - begin)+"毫秒");
    }

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

需求:获得"昨天"的此时的时间

   //获得"昨天"的此时的时间
   Date date = new Date(System.currentTimeMillis() - 1000 * 60 * 60 * 24);
   SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
   String strTime = sdf.format(date);
   System.out.println(strTime);

6.System类

System类的相关属性和方法:

System.out out是System类的静态变量

System.out.println( ) : println方法不是System的,是PrintStream类的方法

System.gc( )启动垃圾回收机制

System.currentTimeMillis( ) : 获取自1970年1月1日 00:00:00 000到当前系统时间的总毫秒数

System.exit(0 ): 退出JVM

猜你喜欢

转载自blog.csdn.net/m0_70720417/article/details/132877665
今日推荐