`
cakin24
  • 浏览: 1388034 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

Java 8新增的日期、时间格式器

    博客分类:
  • java
阅读更多

一 获取DateTimeFormatter对象的三种方式

  • 直接使用静态常量创建DateTimeFormatter格式器
  • 使用代码不同风格的枚举值来创建DateTimeFormatter格式器
  • 根据模式字符串来创建DateTimeFormatter格式器

二 DateTimeFormatter完成格式化
1 代码示例

import java.time.*;
import java.time.format.*;

public class NewFormatterTest
{
	public static void main(String[] args)
	{
		DateTimeFormatter[] formatters = new DateTimeFormatter[]{
			// 直接使用常量创建DateTimeFormatter格式器
			DateTimeFormatter.ISO_LOCAL_DATE,
			DateTimeFormatter.ISO_LOCAL_TIME,
			DateTimeFormatter.ISO_LOCAL_DATE_TIME,
			// 使用本地化的不同风格来创建DateTimeFormatter格式器
			DateTimeFormatter.ofLocalizedDateTime(FormatStyle.FULL, FormatStyle.MEDIUM),
			DateTimeFormatter.ofLocalizedTime(FormatStyle.LONG),
			// 根据模式字符串来创建DateTimeFormatter格式器
			DateTimeFormatter.ofPattern("Gyyyy%%MMM%%dd HH:mm:ss")
		};
		LocalDateTime date = LocalDateTime.now();
		// 依次使用不同的格式器对LocalDateTime进行格式化
		for(int i = 0 ; i < formatters.length ; i++)
		{
			// 下面两行代码的作用相同
			System.out.println(date.format(formatters[i]));
			System.out.println(formatters[i].format(date));
		}
	}
}

 
2 运行结果

2016-09-04
2016-09-04
12:18:33.557
12:18:33.557
2016-09-04T12:18:33.557
2016-09-04T12:18:33.557
2016年9月4日 星期日 12:18:33
2016年9月4日 星期日 12:18:33
下午12时18分33秒
下午12时18分33秒
公元2016%%九月%%04 12:18:33
公元2016%%九月%%04 12:18:33
3 代码说明

上面代码使用3种方式创建了6个DateTimeFormatter对象,然后程序中使用不同方式来格式化日期。

 

三 DateTimeFormatter解析字符串
1 代码示例

import java.time.*;
import java.time.format.*;

public class NewFormatterParse
{
	public static void main(String[] args)
	{
		// 定义一个任意格式的日期时间字符串
		String str1 = "2014==04==12 01时06分09秒";
		// 根据需要解析的日期、时间字符串定义解析所用的格式器
		DateTimeFormatter fomatter1 = DateTimeFormatter
			.ofPattern("yyyy==MM==dd HH时mm分ss秒");
		// 执行解析
		LocalDateTime dt1 = LocalDateTime.parse(str1, fomatter1);
		System.out.println(dt1); // 输出 2014-04-12T01:06:09
		// ---下面代码再次解析另一个字符串---
		String str2 = "2014$$$四月$$$13 20小时";
		DateTimeFormatter fomatter2 = DateTimeFormatter
			.ofPattern("yyy$$$MMM$$$dd HH小时");
		LocalDateTime dt2 = LocalDateTime.parse(str2, fomatter2);
		System.out.println(dt2); // 输出 2014-04-13T20:00
	}
}

 

2 运行结果

2014-04-12T01:06:09
2014-04-13T20:00

 

3 代码说明

上面代码定义了两个不同格式日期、时间字符串。为了解析他们,代码分别使用对应的格式字符串创建了DateTimeFormatter对象,这样DateTimeFormatter即可按照格式化字符串将日期、时间字符串解析成LocalDateTime对象。

0
0
分享到:
评论

相关推荐

    Java - DateUtil 日期时间转换工具类

    资源名称:DateUtil 日期时间转换工具类 内容概要:日期时间转换工具类,包括基本的Date类型,String类型,TimeStamp类型,LocalDateTime类型,LocalDate类型之间的互相转换,还提供了许多与时间获取,时间计算有关...

    java8中文文档API

    Java 8对日期和时间API进行了彻底的改革,引入了`java.time`包,包含`LocalDate`, `LocalTime`, `LocalDateTime`等类,以及`ZonedDateTime`和`Duration`等,提供了更直观和强大的日期时间处理功能。 **8. Nashorn ...

    JAVA8的新增特性

    6. **日期与时间API**:Java 8彻底重构了日期和时间的API,引入了java.time包,提供了更易于使用的类,如LocalDate、LocalTime、LocalDateTime等,取代了过时的Calendar和Date。 7. **Optional类**:Optional是一个...

    《Java 8 in Action》是一本关于 Java 编程语言的书籍,重点介绍了 Java 8 中引入的新特性和改进

    新的日期和时间 API: 探讨 Java 8 中新增的日期和时间 API,以及如何使用这些 API 来处理日期、时间和时区等相关操作。 并发编程改进: 讨论 Java 8 中对并发编程的改进,包括 CompletableFuture、新的并发工具和...

    java8 API 文档

    Java 8 API 文档是Java开发人员的重要参考资料,它详细阐述了Java 8及更高版本中的各种类库、接口和方法。这个文档包含了Java SE(标准版)8的所有公共API,是理解和使用新特性的关键工具。让我们深入探讨Java 8 API...

    Java 8编程入门官方教程

    新API包括`java.time`包下的LocalDate、LocalTime、LocalDateTime等类,这些类提供了更为强大且易于使用的日期时间处理功能。 ```java // 获取当前日期 LocalDate date = LocalDate.now(); System.out.println(date)...

    Java8 API.rar_JAVA8API_Java 8_java 8 api_java 8 api下载_java8

    在Java 8之前,日期和时间的处理相对复杂,而新的java.time包提供了更加直观且强大的类,如LocalDate、LocalTime、LocalDateTime和ZonedDateTime,它们更好地支持了日期、时间和时区的运算。 函数式接口是Java 8...

    JAVA8API-官方文档下载-中文版

    5. **日期和时间API**: Java 8引入了`java.time`包,提供`LocalDate`、`LocalTime`、`LocalDateTime`等类,替代了原有的`java.util.Date`和`Calendar`,使日期和时间的操作更加直观。 **模块系统(Project Jigsaw)...

    Java8 官方教程

    5. **日期和时间API**:Java8改进了日期和时间的处理,引入了新的java.time包,包括LocalDate, LocalTime, LocalDateTime, ZonedDateTime等类,提供了更丰富的日期和时间操作。 6. **Optional类**:Optional是一个...

    Pro Java 8 Programming

    6. **日期和时间API(java.time)**:Java 8替换原有的Date和Calendar API,引入了全新的日期和时间API,包括LocalDate、LocalTime、LocalDateTime、ZonedDateTime等类,提供了更直观、更易于使用的日期和时间操作。...

    java8,JDK,JDK8,Android

    对于Android开发者,虽然Java 8的全部特性并不完全支持,但随着时间的推移,很多关键特性,如Lambda表达式、Stream API和日期时间API,已经被引入到Android Studio中,可以显著提升Android应用的开发效率和质量。...

    OnJava8.zip

    在本篇文章中,我们将探讨Java 8的重要更新,包括Lambda表达式、函数式接口、Stream API、日期与时间API以及默认方法等核心知识点。 1. **Lambda表达式**: Java 8引入了Lambda表达式,这是一种简洁的匿名函数表示...

    Java8 API.zip

    在Java 8中,许多重要的更新和改进被引入,尤其是对于集合框架、函数式编程和日期时间API的增强。以下是一些主要的知识点: 1. **Lambda表达式**:Java 8引入了lambda表达式,这是一种简洁的匿名函数表示方式,用于...

    java8参考手册

    - **java.time**包:Java 8引入了全新的日期和时间API,取代了旧的`java.util.Date`和`java.util.Calendar`。新API包括`LocalDate`、`LocalTime`、`LocalDateTime`、`ZonedDateTime`等类,提供了更直观、更强大的...

    Java SE 8 Documentation(b54)官方参考文档CHM版

    Java 8还引入了日期和时间API的重大更新,移除了之前常常被诟病的`java.util.Date`和`java.util.Calendar`,引入了`java.time`包,包含如`LocalDate`, `LocalTime`, `LocalDateTime`, `ZonedDateTime`等类,提供了...

    java 8 api

    本文将深入探讨Java 8 API的关键知识点,包括函数式编程、日期时间API、Stream API以及默认方法等。 一、函数式编程 Java 8引入了对函数式编程的支持,最显著的变化就是Lambda表达式。Lambda表达式是一种简洁的...

    Java Platform SE 8

    这个版本对Java编程语言进行了重大更新,包括函数式编程的支持、日期时间API的改进以及新的集合API等。 **主要特性** 1. **lambda表达式**:Java SE 8引入了lambda表达式,这是函数式编程的一个关键特性。Lambda...

    根据输入的日期获取所属季度

    - `yyyy_MM_dd_HH_mm_ss`: 日期时间格式化为`"yyyy-MM-dd HH:mm:ss"`。 - `yyyy_MM_dd`: 日期格式化为`"yyyy-MM-dd"`。 - `yyyy_MM`: 日期格式化为`"yyyy-MM"`。 - `yyyy`: 日期格式化为`"yyyy"`。 - `MM`: ...

    Java8语言和虚拟机规范

    5. **日期与时间API**:Java 8改进了日期和时间处理,引入`java.time`包,提供了更易用且功能强大的API,替代了之前的`java.util.Date`和`java.util.Calendar`。 6. **Optional类**:用于表示可能为null的值,减少...

Global site tag (gtag.js) - Google Analytics