日期和时间

作者: 趁年轻多奋斗 | 来源:发表于2019-04-22 14:50 被阅读2次

Java API中关于日期和时间,有三个主要类

  1. Data:表示时刻,即绝对时间,与年月日无关。
  2. Calendar:表示年历,Calendar是一个抽象类,表示公历的子类为Grenregorian-Calendar
  3. DateFormat:表示格式化,抽象类,将字符串与Date类型进行彼此转换。常用子类:SimpleDateFormat。
  • 相关类:TimZone:表示时区 Locale:表示国家或语言

Date

Java API最早引入的日期类,不支持国际化,许多方法被废除。
两个构造方法:

public Date(long date) {
   fastTime = date;
}  //根据传入的毫秒数进行初始化
public Date() {
   this(System.currentTimeMillis());
}  //默认构造方法,根据System.currentTimerMills()的返回zhi值进行初始化。
//(返回当前时刻记录纪元时的毫秒数 纪元:1970.01.01 0 0 0)

TimZone

表示时区,抽象类,使用静态方法来获取实例。

TimeZone zone = TimeZone.getDefault();
System.out.println(zone.getID());
System.out.println(zone.getDisplayName());
System.out.println(zone.getDSTSavings()); //返回以毫秒为单位的时钟是在夏令时提前的时间量
image.png

Locale

表示国家(地区)或语言,两个主要参数:国家(地区)、语言


参数值

Calendar

Calendar类是日期和时间操作中的主要类,它表示与TimeZone和Local相关的日历信息,可以进行各种相关的运算。是一个抽象类,不能直接创建对象,可以使用如下获得该实例:

静态方法
内部结构

protected long time; //表示时刻的毫秒数
protected int[] fields[]; //表示日历中各个字段的值。主要有:


参数值

Calendar能够自动调整相关字段,通过实例点add对相关字段添加或减少(正与负)如:calendar.add(Calendar.HOUR_OF_DAY,48)
而使用点roll方法,则不改变时间范围更大的字段值。

DateFormat

DateFormat类主要在Date和字符串表示之间进行相互交换。抽象类,可通过下列静态方法创建实例:


静态方法
public final String format(Date date) //将Date转换成String
public Date parse(String source)  //将Stringz装换成Date

代码实例:


代码实例

运行结果:


效果图

SimpleDate

是DateFormat的子类,不同是它可以接受一个自定义模式作为参数。

Calendar calendar = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 E a HH时mm分ss秒");
System.out.println(sdf.format(calendar.getTime()));
效果图
各参数表示意思

相互比较:

  • Date很多过时方法,并且方法的参数与常识不符,产生无用。
  • Calendar操作繁琐。并且难以进行比较复杂的日期操作。
  • DateFormat不是线程安全。
    每次使用DateFormat都新建一个对象
    使用线程同步
    使用ThreadLocal
    使用Java 8的API ,是线程安全。

相关文章

  • 时间和日期

    时间和日期 time 包为我们提供了一个数据类型 time.Time(作为值使用)以及显示和测量时间和日期的功能函...

  • 日期和时间

    日期和时间 必须 使用 Carbon 来处理日期和时间相关的操作。

  • 日期和时间

    PHP日期和时间之取得当前的Unix时间戳 UNIX 时间戳(英文叫做:timestamp)是 PHP 中关于时间...

  • 日期和时间

  • 日期和时间

    Java API中关于日期和时间,有三个主要类 Data:表示时刻,即绝对时间,与年月日无关。Calendar:表...

  • 日期和时间

    Date和time对象允许您及时存储对特定实例的引用。您可以使用日期和时间对象来执行计算和比较,以解决日期和时间计...

  • 日期和时间

    1.获取当前日期 2.2021-09-06T10:32:07.000+0000 格式转换为 2021-09-06 ...

  • 时间和日期

  • Linux 日期和时间

    Reference: http://www.makaidong.com/%E5%8D%9A%E5%AE%A2%E5...

  • Java 时间和日期

    序 java.util.Date java.text.SimpleDateFormat java.text.Dat...

网友评论

    本文标题:日期和时间

    本文链接:https://www.haomeiwen.com/subject/lcpegqtx.html