更新时间:2022-08-05 10:27:16 来源:极悦 浏览977次
Java SimpleDateFormat 和 DateFormat 类用于日期格式化。它主要用于我们需要显示或利用 Java 的日期和时间功能的地方。这两个类都存在于com.text包中。
DateFormat 用于根据作为输入提供的特定语言环境将日期格式化为字符串。
区域设置用于指定区域和语言,以使代码对用户更具区域设置。
世界不同地区的日期书写方式不同。例如,2017 年 12 月 31 日在印度将写为 31-12-2017,但在美国将写为 12-31-2017。
日期格式类不同步,建议为每个线程创建单独的实例。
可以使用DateFormat 类的getDateInstance()and方法创建 DateFormat 对象。getTimeInstance()
Locale loc = new Locale("en", "US");
DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.DEFAULT, loc);
如上例所示,getDateInstanceDateFormat 方法需要两个输入参数,第一个参数指定要使用的 DateFormat,第二个参数是 locale。
Java 日期格式示例
DateFormat 类有一个负责格式化的格式化方法。
Locale locale = new Locale("fr", "FR");
DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.DEFAULT, locale);
String date = dateFormat.format(new Date());
System.out.print(date);
输出:3 janv. 2018在上面的示例中,我们使用getDateInstance()方法来创建 DateFormat 实例。为了执行时间格式,我们需要一个时间实例。我们将使用 getTimeInstance() 方法来获取时间实例。
Locale locale = new Locale("fr", "FR");
DateFormat dateFormat = DateFormat.getTimeInstance(DateFormat.DEFAULT, locale);
String date = dateFormat.format(new Date());
System.out.print(date);
输出:11:03:01
SimpleDateFormat 与 DateFormat 非常相似,它们之间唯一的主要区别是 SimpleDateFormat 可用于格式化(日期到字符串转换)和解析(字符串到日期转换),支持语言环境,而 DateFormat 不支持语言环境。此外,DateFormat 是一个抽象类,为日期格式化和解析提供基本支持,SimpleDateFormat 是扩展 DateFormat 类的具体类。
创建 SimpleDateFormat 实例
SimpleDateFormat 可以使用 SimpleDateFormat 构造函数创建,构造函数是一个参数化的构造函数,需要一个字符串模式作为参数。
String pattern = "MM-dd-yyyy";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
在上面的示例中,字符串模式是用于格式化日期的模式,输出将在该模式中生成为“MM-dd-yyyy”。
Java SimpleDateFormat 示例
为了解析日期,我们需要使用构造函数创建一个 SimpleDateFormat 实例,然后使用 format() 方法。让我们看一个使用 SimpleDateFormat 格式化日期的示例。
String pattern = "MM-dd-yyyy";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
String date = simpleDateFormat.format(new Date());
System.out.println(date);
输出:01-02-2018在上面的示例中,日期是 2018 年 1 月 2 日。为了解析时间,我们必须在创建 SimpleDateFormat 实例时更改模式。
String pattern = " HH:mm:ss.SSSZ";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
String date = simpleDateFormat.format(new Date());
System.out.println(date);
输出:13:03:15.454+0530在上面的示例中,模式是时间模式,当前时间的格式是基于模式完成的。
使用 SimpleDateFormat 解析
解析是将字符串转换为java.util.Date实例。parse()我们可以使用SimpleDateFormat 类的方法将字符串解析为日期实例。为了将字符串解析为日期,我们需要一个 SimpleDateFormat 类的实例和一个字符串模式作为该类构造函数的输入。
String pattern = "MM-dd-yyyy";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
Date date = simpleDateFormat.parse("12-01-2018");
System.out.println(date);
输出:Sat Dec 01 00:00:00 IST 2018现在让我们看一下 SimpleDateFormat 示例来解析时间。
String pattern = "HH:mm:ss";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
Date date = simpleDateFormat.parse("22:00:03");
System.out.println(date);
输出:Thu Jan 01 22:00:03 IST 1970在上面的例子中,因为我们没有指定任何日期,程序将纪元视为日期,即 01-Jan-1970。
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习