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 ...
随机推荐
- 一个想法(续六):IT联盟创业计划:如何进行找钱、寻人、做事?
前言: 不知时间过的快,或是慢,一周过去了,在这一周,基本是围绕着创业这事在折腾. 也在看一些和创业相关的文章,不小心就看到了dudu在2007年呼喊创业的口号. 于是把他那一年的博文都给看了: 看着 ...
- githup教程
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/瘳雪峰-Git教程http://w ...
- ASP.NET MVC 项目直接预览PDF文件
背景及需求 项目使用的是MVC4框架,其中有一个功能是根据设置生成PDF文件,并在点击时直接预览. 实现过程 1.第一版实现代码: HTML内容 @{ Layout = null; } <!DO ...
- 单点登录实现(spring session+redis完成session共享)
一.前言 项目中用到的SSO,使用开源框架cas做的.简单的了解了一下cas,并学习了一下 单点登录的原理,有兴趣的同学也可以学习一下,写个demo玩一玩. 二.工程结构 我模拟了 sso的客户端和s ...
- MAC软件下载链接地址
博客开启,今天向大家推荐一款MAC软件大全地址. 下载地址:http://www.pc6.com/mac/111949.html
- Linux TCP连接数修改
一. 文件数限制修改 (1) vi /etc/security/limits.conf * soft nofile 10240 * hard nofile 10240 ...
- 网络性能测试工具Iperf/Jperf解读
Iperf 是一个网络性能测试工具.Iperf 可以测试TCP 和UDP 带宽质量.Iperf 可以测量最大TCP 带宽,具有多种参数和UDP 特性. Iperf 可以报告带宽,延时抖动和数据包丢失. ...
- 解决clipboard手机端无法复制的一种思路
最近,做了一个切图的小项目 主要内容是微信号的推广页面,上面会有精美的图片和微信号:) 点击按钮,会复制到粘贴板上,自己去微信里面粘贴搜索:),懒人会进行一系列复杂操作么,不看好 首先,百度了一下,看 ...
- lxd容器之GPU发现和加载
lxd gpu设备发现: // /dev/nvidia[0-9]+ type nvidiaGpuCards struct { path string major int minor int id st ...
- MAC本如何优雅的创建定时任务
在MACOS上设置定时任务大体有两种方案.一种是使用crontab,一种是使用Schedule,今天结合我的使用简单介绍一下. 先说一下背景,为什么MAC可以用crontab.如果使用过Linux的同 ...