Java-API简析_java.text.DateFormat类(基于 Latest JDK)(浅析源码)

【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)
https://blog.csdn.net/m0_69908381/article/details/132216784
出自【进步*于辰的博客】

因为我发现目前,我对Java-API的学习意识比较薄弱,需要慢慢习惯使用Java-API,乃至剖析源码来提升自己的源码阅读能力和编码素质。
大家如果需要Java-API文档,我上传了【https://download.csdn.net/download/m0_69908381/87691693】。

文章目录

  • 1、概述
  • 2、嵌套类摘要
    • 2.1 static DateFormat.Field
  • 3、字段摘要
    • 3.1 static int AM_PM_FIELD
    • 3.2 protected Calendar calendar
    • 3.3 static int DATE_FIELD
    • 3.4 static int DAY_OF_WEEK_FIELD
    • 3.5 static int DAY_OF_WEEK_IN_MONTH_FIELD
    • 3.6 static int DAY_OF_YEAR_FIELD
    • 3.7 static int DEFAULT
    • 3.8 static int ERA_FIELD
    • 3.9 static int FULL
    • 3.10 static int HOUR_OF_DAY0_FIELD
    • 3.11 static int HOUR_OF_DAY1_FIELD
    • 3.12 static int HOUR0_FIELD
    • 3.13 static int HOUR1_FIELD
    • 3.14 static int LONG
    • 3.15 static int MEDIUM
    • 3.16 static int MILLISECOND_FIELD
    • 3.17 static int MINUTE_FIELD
    • 3.18 static int MONTH_FIELD
    • 3.19 protected NumberFormat numberFormat
    • 3.20 static int SECOND_FIELD
    • 3.21 static int SHORT
    • 3.22 static int TIMEZONE_FIELD
    • 3.23 static int WEEK_OF_MONTH_FIELD
    • 3.24 static int WEEK_OF_YEAR_FIELD
    • 3.25 static int YEAR_FIELD

1、概述

继承关系:

  • java.lang.Object
    • java.text.Format
      • java.text.DateFormat

所有已实现的接口:
Serializable、Cloneable

直接已知子类:
SimpleDateFormat


public abstract class DateFormat extends Format

DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并分析日期或时间。日期/时间格式化子类(如 SimpleDateFormat)允许进行格式化(也就是日期 -> 文本)、分析文本-> 日期)和标准化。将日期表示为 Date 对象,或者表示为从 GMT(格林尼治标准时间)1970 年,1 月 1 日 00:00:00 这一刻开始的毫秒数。

DateFormat 提供了很多类方法,以获得基于默认或给定语言环境多种格式化风格的默认日期/时间 Formatter。格式化风格包括 FULLLONGMEDIUMSHORT。方法描述中提供了使用这些风格的更多细节和示例。

DateFormat 可帮助进行格式化并分析任何语言环境的日期。对于月、星期,甚至日历格式(阴历和阳历),其代码可完全与语言环境的约定无关。

要格式化一个当前语言环境下的日期,可使用某个静态工厂方法:

myString = DateFormat.getDateInstance().format(myDate);

如果格式化多个日期,那么获得该格式并多次使用它是更为高效的做法,这样系统就不必多次获取有关环境语言和国家约定的信息了。

DateFormat df = DateFormat.getDateInstance();
for (int i = 0; i < myDate.length; ++i) {
  output.println(df.format(myDate[i]) + "; ");
}

要格式化不同语言环境的日期,可在 getDateInstance() 的调用中指定它。

DateFormat df = DateFormat.getDateInstance(DateFormat.LONG, Locale.FRANCE);

还可使用 DateFormat 进行分析。

myDate = df.parse(myString);

使用 getDateInstance() 来获得该国家的标准日期格式。另外还提供了一些其他静态工厂方法。使用 getTimeInstance() 可获得该国家的时间格式。使用 getDateTimeInstance() 可获得日期和时间格式。可以将不同选项传入这些工厂方法,以控制结果的长度(从 SHORTMEDIUMLONG 再到 FULL)。确切的结果取决于语言环境,但是通常:

  • SHORT 完全为数字,如 12.13.523:30pm
  • MEDIUM 较长,如 Jan 12, 1952
  • LONG 更长,如 January 12, 19523:30:32pm
  • FULL 是完全指定,如 Tuesday, April 12, 1952 AD3:30:42pm PST

如果愿意,还可以在格式上设置时区。如果想对格式化或分析施加更多的控制(或者给予用户更多的控制),可以尝试将从工厂方法所获得的 DateFormat 强制转换为 SimpleDateFormat。这适用于大多数国家;只是要记住将其放入一个 try 代码块中,以防遇到特殊的格式。

还可以使用借助 ParsePosition 和 FieldPosition 的分析和格式化方法形式来

  • 逐步地分析字符串的各部分。
  • 对齐任意特定的字段,或者找出字符串在屏幕上的选择位置。

同步

DateFormat 不是同步的。建议为每个线程创建独立的格式实例。如果多个线程同时访问一个格式,则它必须保持外部同步。

另请参见:
Format、NumberFormat、SimpleDateFormat、Calendar、GregorianCalendar、TimeZone、序列化表格

2、嵌套类摘要

2.1 static DateFormat.Field

定义了各种常量,这些常量用作 DateFormat.formatToCharacterIterator 所返回的 AttributedCharacterIterator 中的属性键和 FieldPosition 中的字段标识符。

3、字段摘要

3.1 static int AM_PM_FIELD

用于对齐 AM_PM 字段的有用常量。

3.2 protected Calendar calendar

DateFormat 使用 calendar 来生成实现日期和时间格式化所需的时间字段值。

3.3 static int DATE_FIELD

用于对齐 DATE 字段的有用常量

3.4 static int DAY_OF_WEEK_FIELD

用于对齐 DAY_OF_WEEK 字段的有用常量

3.5 static int DAY_OF_WEEK_IN_MONTH_FIELD

用于对齐 DAY_OF_WEEK_IN_MONTH 字段的有用常量

3.6 static int DAY_OF_YEAR_FIELD

用于对齐 DAY_OF_YEAR 字段的有用常量

3.7 static int DEFAULT

用于默认模式的常量。

3.8 static int ERA_FIELD

用于对齐 ERA 字段的有用常量。

3.9 static int FULL

用于 FULL 模式的常量。

3.10 static int HOUR_OF_DAY0_FIELD

用于对齐从 0 开始的 HOUR_OF_DAY 字段的有用常量。

3.11 static int HOUR_OF_DAY1_FIELD

用于对齐从 1 开始的 HOUR_OF_DAY 字段的有用常量。

3.12 static int HOUR0_FIELD

用于对齐从 0 开始的 HOUR 字段的有用常量。

3.13 static int HOUR1_FIELD

用于对齐从 1 开始的 HOUR 字段的有用常量。

3.14 static int LONG

用于 LONG 模式的常量。

3.15 static int MEDIUM

用于 MEDIUM 模式的常量。

3.16 static int MILLISECOND_FIELD

用于对齐 MILLISECOND 字段的有用常量。

3.17 static int MINUTE_FIELD

用于对齐 MINUTE 字段的有用常量。

3.18 static int MONTH_FIELD

用于对齐 MONTH 字段的有用常量。

3.19 protected NumberFormat numberFormat

数字 formatter,DateFormat 用其来格式化日期和时间中的数字。

3.20 static int SECOND_FIELD

用于对齐 SECOND 字段的有用常量。

3.21 static int SHORT

用于 SHORT 模式的常量。

3.22 static int TIMEZONE_FIELD

用于对齐 TIMEZONE 字段的有用常量。

3.23 static int WEEK_OF_MONTH_FIELD

用于对齐 WEEK_OF_MONTH 字段的有用常量。

3.24 static int WEEK_OF_YEAR_FIELD

用于对齐 WEEK_OF_YEAR 字段的有用常量。

3.25 static int YEAR_FIELD

用于对齐 YEAR 字段的有用常量。


本文持续更新中。。。

你可能感兴趣的:(Java-API,Java-API简析,DateFormat)