专业的JAVA编程教程与资源

网站首页 > java教程 正文

Java SimpleDateFormat 基础使用这一篇足够了

temp10 2024-12-16 16:15:05 java教程 10 ℃ 0 评论

Java SimpleDateFormat 知识点使用

思维导图

对于 SimpleDateFormat 类, 是一个用来区分区域设置的方式进行日期的是指, 以及对日期进行处理分析的一个实现类。 它对于时间类型可以进行格式化操作, 通常可以进行 “日期“ 转换成 “字符串”,当然也可以 “字符串” 转换成 “日期“ 。

该类的定义为:

Java SimpleDateFormat 基础使用这一篇足够了

public class SimpleDateFormatextends DateFormat

Format

先让我们看看继承的两个抽象类都是做什么用的。 先看一下 java.text.Format 抽象类

public abstract class Format
extends Object
implements Serializable, Cloneable

首先看构造方法, 该抽象类就一个构造方法:

protected Format()

包含了一个嵌套类

public static class Field extends AttributedCharacterIterator.Attribute

对于抽象基类 Format,主要是用于设置区域,设置敏感信息的格式, 比如:日期、消息和数字。

对于 Java 平台提供了三个专业的子类, 分别是:DateFormat(格式化日期)、MessageFormat(格式化消息) 以及 NumberFormat(格式化数字)。

对于具体的子类, 必须实现其中的三个方法。分别是:

  • format(Object obj, StringBuffer toAppendTo, FieldPosition pos)
  • formatToCharacterIterator(Object obj)
  • parseObject(String source, ParsePosition pos)

这三个通用的方法允许对对象进行多态解析和格式化。

这里只讲解 DateFormat 的格式。

DateFormat

定义内容如下:

public abstract class DateFormat extends Format 

对于该日期格式化的抽象类中,定义了大量的类静态常量,主要是用来进行时间操作的时候的一些魔法值的定义。

并重新扩展了很多的便于时间操作的静态常量方法。

具体如下:

对于构造函数, 也是只有默认的构造函数。

对应的方法有:

对于 DateFormat 的类, 提供了很多类方法, 帮助您格式化和分析区域设置的日期 。可以用于设置, 月份、星期几、以及日历格式,对于日历格式又包含阴历和阳历。

对于抓换的时间格式, 分为四种不同的可选情况:

  • SHORT 缩写的年份格式, 以及时分。 例如:12.13.52 3:30pm 对于 实现类 SimpleDateFormat 默认是这个。
  • MEDIUM 对应的完整的年份。例如: 2021.12.25
  • LONG 包含年月日和时分秒的格式
  • FULL 包含年月日,时分秒,以及星期的太平洋标准时间。

以上的类都是抽象类, 如果想实现时间的处理和格式化的显示, 都是需要我们重新实现一些功能。最终我们可以使用的实现类为: SimpleDateFormat

SimpleDateFormat

该类是具体的使用类。 包含了几个构造函数, 都是为了使用方便。 区别在于是否要设置格式规则, 已经设置时区区域。

默认的构造函数, 可以通过

SimpleDateFormat simpleDateFormat = new SimpleDateFormat();

使用默认的构造函数, 定义一个时间格式化对象。 定义如下, 可以看到使用了 SHORT 格式化。

public SimpleDateFormat() {
    this("", Locale.getDefault(Locale.Category.FORMAT));
    applyPatternImpl(LocaleProviderAdapter.getResourceBundleBased()
         .getLocaleResources(locale)
         .getDateTimePattern(SHORT, SHORT, calendar));
}

举个例子:

既然可以格式化, 我们怎么定义格式化的内容的。 比方说, 我们通常使用的格式:2021-12-25 09:00:00。

我们可以定义成如下:

yyyy-MM-dd HH:mm:ss.S

这其中的 y 啊 M 啊, 都是什么意思呢, 又是小写的 m 又是大写的 M。又代表着什么?

对应的方法有:

除了编写构造方法, 还可以使用 applyPattern(String pattern) 进行指定格式。

在使用中, 特别是 web 的开发中经常的会使用进行格式的转换。 用户的录入时间, 然后转换成对应的日期对象。根据上面的规则, 我们可以写个小日历。 显示当前月日历。

simpleDateFormat.applyPattern("今天 E yyyy 年 MM 月 dd 日 HH 时 mm 分 ss 秒 ");  

对于 SimpleDateFormat 的基础用法先到这, 后期到 Web 开发的时候, 在来进行另外的知识点引申。

今日一句:最好的职场和人生状态其实是既着眼于未来,关注价值;又专注于当下,完成任务。 就想现在虽然每天都在输出基础的知识, 这都是为了后续更好的实战而做的准备, 因为这样你猜能说某某实战引用了某某知识点。 可以加以引申。但是实际呢,每天的开发任务还是不能少。 毕竟那才是养家糊口的必要。这只能是自己的输入和输出的一个平台。

点赞, 关注, 收藏。 感谢阅读。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表