JDK中日期和时间的几个常用类浅析(五)
LocalDateTime
LocalDateTime是JDK8中才引入的类,用来表示不包含时区信息的本地日期和时间。我们可以把LocalDateTime看作是LocalDate和LocalTime的一个组合类。同样地,该类是一个不可变类,所以作用于该类对象上的方法都是返回一个该类的新对象。
通常,我们使用该类的静态工厂方法来创建该类对象。两种创建该类对象的示例代码如下:
LocalDateTime ldt1 = LocalDateTime.now();
LocalDateTime ldt2 = LocalDateTime.of(2017, 3, 31, 20, 33, 23, 123);
可以看到两种方法都非常地简单。针对该类说包含的域,该类提供了相应地get和算法算法方法,简单示例如下:
getYear()
getHour()
plusYears()
minusSeconds()
ZonedDateTime
ZonedDateTime也是JDK8中才引入的新类,用来表示含有时区信息的日期和时间。通常用来表示一个世界范围内的特点时间点。同样地,该类也是一个不可变类,所有作用于该类对象上的方法都是返回一个该类的新对象。
通常,我们使用该类的静态工厂方法来创建该类的对象,两种创建该类对喜爱那个的示例代码如下:
ZonedDateTime zdt = ZonedDateTime.now();
ZonedId zId = ZoneId.of("UTC+1");
ZonedDateTime zdt = ZoneDateTime.of(2017, 3, 31, 20, 33, 23, 123, zoneId);
可以看到,该类比LocalDateTime的区别就在于该类包含有时区信息。针对该类含有的域,该类提供了大量的便利方法,简单举例如下:
getYear();
getNano();
plusDays();
minusHours();
ZoneId
在JDK8中,使用ZoneId类来表示时区。该类的创建语法非常简单,简单示例如下:
ZoneId zoneId = ZoneId.of("UTC+1");
可以看到,时区的表示形式非常灵活,以UTC时间做参考,我们可以非常灵活地构造出希望的时区。同时,ZoneId还支持另外一种形式的时区表示法,示例代码如下:
ZoneId zoneId2 = ZoneId.of("Europe/Copenhagen");
ZoneId zoneId3 = ZoneId.of("Europe/Paris");
DateTimeFormatter
针对JDK8中新引入的那些日期和时间类,JDK8引入了一个用于在这些日期时间对象与字符串对象之间的转换工具类,名为DateTimeFormatter。 为了方便使用,该类预定于了一系列该类的常量对应,用于处理常见的日期时间与字符串转换需求。其中包含但不限于:
BASICISODATE
ISOLOCALDATE
ISOLOCALTIME
ISOLOCALDATETIME
ISOOFFSETDATE
RFC1123DATE_TIME
每个预定义的该类对象,都能处理相应的字符串格式,关于这些对象与字符串格式之间的对应关系,详见JavaDoc。
关于使用方法,我们简单举例如下:
DateTimeFormatter f = DateTimeFormatter.BASICISODATE;
String fd = f.format(LocalDate.now());
System.out.println(fd);
这个示例的输出结果可能如下所示:
20170331
总结
经过五篇文章的讲解,JDK7与JDK8中的两套新旧日期与时间API,我们就讲解的差不多了。关于更多的细节和注意点,就需要在实际工作中慢慢累积了。
JDK中日期和时间的几个常用类浅析(五)的更多相关文章
- JDK中日期和时间的几个常用类浅析(二)
java.util.Calendar JDK中的java.util.Calendar类主要是用来处理日期和时间相关的算法运算.当你需要做一些关于日期和时间的高级算数操作时,此类可能就是你的最好选择 ...
- JDK中日期和时间的几个常用类浅析(四)
java.time.Instant java.time.Instant类对应的是时间线上的一个时间点.该类通过保存着从格林威治的起始时间(1970年一月一日零点零分)开始计算所经过的纳妙数来表示时 ...
- JDK中日期和时间的几个常用类浅析(三)
java.text.SimpleDateFormat SimpleDateFormat类是用于把字符串解析成日期时间和把日期时间格式化成字符串的工具类.该类主要和java.util.Date类配合 ...
- Python中日期和时间格式化输出的方法
本文转自:https://www.jb51.net/article/62518.htm 本文实例总结了python中日期和时间格式化输出的方法.分享给大家供大家参考.具体分析如下: python格式化 ...
- 5 个关于 API 中日期和时间设计规则
规则 #1 使用ISO-8601格式作为你的日期格式 ISO 8601 解决了很多问题,包括: 自然排序 - 简单和优雅,免去多余的工作即可实现排序 时区偏移 - 代表用户的地点和时区在日益增长的全球 ...
- PHPExcel对于Excel中日期和时间类型的处理
PHPExcel是一款优秀的处理Excel文件读写的开源PHP Library,能够给我们提供强大的Excel读写能力,本文针对Excel处理过程中关于日期和时间类型的处理进行深入的讨论.PHPExc ...
- SqlServer中日期和时间数据类型及函数 【转】
来源:http://blog.csdn.net/royalwzy/article/details/6446075 日期和时间数据类型 下表列出了 Transact-SQL 的日期和时间数据类型. 数据 ...
- JAVA中日期和时间的格式化选项
一.使用printf方法 import java.util.Date; import java.util.Scanner; public class Test { public static void ...
- Oracle中日期和时间类函数
首先,在oracle中如何表示日期 操作日期时,应使用to_date('date','dateType')函数得到date类型,其中date为任意格式的日期,dateType指定其格式,如to_dat ...
随机推荐
- 复杂的1秒--图解Google搜索技术
谷歌(Google),一个非常成功,但又十分神秘,而且带有几分理想化色彩的互联网搜索巨人,它还是一家相当了不起的广告公司,谷歌首页上的那个搜索按钮是其年赢利200亿美元的杀手级应用,也是Interne ...
- lazy ideas in programming
lazy形容词,懒惰的,毫无疑问是一个贬义词.但是,对于计算机领域,lazy却是非常重要的优化思想:把任务推迟到必须的时刻,好处是避免重复计算,甚至不计算.本文的目的是抛砖引玉,总结一些编程中的laz ...
- java初级开发程序员(第六单元)
1.for循环结构: 循环结构分为四个部分. >初始部分:设置循环的初始状态,如设置记录循环次数的变量i为0. >循环体:重复执行的代码,即输出“好好学习,天天向上!”. >迭代部分 ...
- PHP学习2 — PHP Cookie 与 Session
PHP Cookies cookie 常用于识别用户.cookie 是服务器留在用户计算机中的小文件.每当相同的计算机通过浏览器请求页面时,它同时会发送 cookie.通过 PHP,您能够创建并取回 ...
- Spring IoC介绍与Bean的使用
1. 介绍 IoC IoC-Inversion of Control,即"控制反转",它不是什么技术,而是一种设计思想.在 Java 开发中, IoC意味着将设计好的对象交给容 ...
- 关于c# 基础运算符的应用
运算符 分为5种 1 算数预算符 +,-,*,/,分别为加减乘除 ++为加1,--为减1, 前++ 后++ 的区别 int a = 10, b = a++; Console ...
- 文件上传----FTP部署
- 极光推送CTO黄鑫:技术人员要建立自己的知识图谱
本周,我们邀请到了极光推送CTO兼首席科学家黄鑫进行人物专访,在展示风采的同时,也分享会员们对技术.对工作.对人生的感悟. 扎实的底层服务是扩张关键 极光推送是一个做第三方云服务的公司,在 ...
- 对java数组的一些理解
刚开始学习Java的时候一直搞不清除获取数组的长度是用length()还是length,现在不妨来深入了解一下数组的真实面目. 我们不妨来看一下数组的源码,诶,数组的类名叫什么?我们声明一个int数组 ...
- 版本控制器——Egit使用方法
什么是Git Gitv是目前世界上最先进的分布式版本控制系统. 那我们为什么需要学习Git呢?因为在我们传统的java自学中,所有的项目都是自己独立开发完成,而且项目基本都是小型项目,在优化和体验上往 ...