14_JavaSE_时间表示

Posted Jack·Kwok

tags:

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

在 Java 中,关于时间的表示一般是通过创建 Date 类的对象。既然是类,那么创建其对象的方法就很简单啦,我们看到,该类有两个构造方法:一个不提供参数,默认根据系统目前的时间来创建对象;另一个是提供一个 long 类型的参数,其表示从 1970 年 1 月 1 日起的毫秒数。以下为创建的例子。

Date date = new Date();
Date date = new Date(long along);

该类也提供了一些方法为我们使用,常见的方法如下:

//调用该方法的 Date 对象在参数时间之后,则返回 true ,否则返回 false
boolean after(Date date)
//调用该方法的 Date 对象在参数时间之前,则返回 true ,否则返回 false
boolean before(Date date)
//比较两个时间,相等则返回 0 ,调用该方法的对象在参数时间之前则返回负数,之后返回正数。
int compareTo(Date date)
//当调用该方法的 Date对象和参数日期相等则返回 true ,否则返回 false
boolean equals(Object date)
//把该 Date 对象转换为 String 形式(年月日 时分秒等表示)
String toString()

以上方法基本满足了我们对日期的操作,因为我们一般对日期的操作无非就是输出时间,或者对比两个时间。但这里有个问题:这里的输出时间它的格式是怎么样的?我们是否可以自己设计输出的形式(这里讲的是时间输出时的形式,是“年月日”?还是“日月年”?连接符是“汉字”,还是“-”等等)。

我们先来看看 toString 输出的格式:

public class Test 
    public static void main(String[] arg)
        Date date = new Date();
        System.out.println(date.toString());
    

Fri Jan 07 19:49:21 CST 2022

我以我当前的时间为例,输出的格式是上面这样的,这种方式一来不适合我们的习惯,二来也无法改变形式,确实不够友好。因此我们引入了 SimpleDateFormat 类用于格式化显示时间。

public class Test 
    public static void main(String[] arg)
        Date dNow = new Date( );
        SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd hh:mm:ss");
        System.out.println("当前时间为: " + ft.format(dNow));
    

当前时间为: 2022-01-07 07:51:52

上面这种方式的显示很显然更符合我们的习惯,而且更重要的是,我们同样可以自己定制,只需要用到字母作为占位符就好了(注意:字母是区分大小写的),其它的字符则可以根据自己的需要设计,它会自己显示出来的。

常用的字母其实不多,一般用到的有:
G 表示是公元前还是公元后 BC/AD
yyyy 一般四位出现,表示四位的年份 2012
MM 一般两位出现,表示月份 09
dd 一般两位出现,表示日期 20
hh 一般两位出现,表示12小时制的“时” 08
HH 一般两位出现,表示24小时制的“时” 17
mm 一般两位出现,表示分钟数 20
ss 一般两位出现,表示秒数 30
SS 一般两位出现,表示毫秒数 26
E 一般一位出现,表示星期几 星期五

以上是关于14_JavaSE_时间表示的主要内容,如果未能解决你的问题,请参考以下文章

Mac查找java主目录

JavaSE_02_Thread类01

手把手-安装-java(jdk)

JavaSE复习_10 多线程复习

JavaSE_08_Collections常用功能

java_14 Date