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
ISO
LOCAL
DATETIME

ISOOFFSETDATE

RFC1123DATE_TIME
每个预定义的该类对象,都能处理相应的字符串格式,关于这些对象与字符串格式之间的对应关系,详见JavaDoc。
  关于使用方法,我们简单举例如下:
DateTimeFormatter f = DateTimeFormatter.BASICISODATE;
String fd = f.format(LocalDate.now());
System.out.println(fd);
这个示例的输出结果可能如下所示:
20170331

总结

  经过五篇文章的讲解,JDK7与JDK8中的两套新旧日期与时间API,我们就讲解的差不多了。关于更多的细节和注意点,就需要在实际工作中慢慢累积了。

时间: 2024-10-22 00:24:20

JDK中日期和时间的几个常用类浅析(五)的相关文章

PHP中日期和时间函数简介

PHP中日期和时间相关函数简介 一.UNIX时间戳 在当前大多数的UNIX系统中,保存当前日期和时间的方法是:保存格林尼治标准时间从1970年1月1日零点起到当前时刻的秒数,以32为整列表示.1970年1月1日零点也称为UNIX纪元.在Windows系统下也可以使用UNIX时间戳,简称时间戳,但如果时间在1970年以前或2038年以后,处理的时候可能会出现问题. PHP在处理有些数据,特别是对数据库中时间类型的数据进行格式化时,经常需要先将时间类型的数据转化为UNIX时间戳再进行处理,另外,不同

5 个关于 API 中日期和时间设计规则

规则 #1 使用ISO-8601格式作为你的日期格式 ISO 8601 解决了很多问题,包括: 自然排序 - 简单和优雅,免去多余的工作即可实现排序 时区偏移 - 代表用户的地点和时区在日益增长的全球化和移动世界中越来越重要. 地区中立性 - 想象一下噩梦一般的日期 2/3/4.这个日期随着你所处美国,欧洲或者其他地方而有不同的含义...这个日期在美国代表Feb 3, 2004,或者在其他地方代表Mar 2, 2004.在ISO 8601条款中,2004-02-03去掉了这些含糊的可能性. 在不

Windows Phone 8.1中日期和时间选择器DatePicker,TimePicker

开篇之前,推荐王磊老师的Windows 8.1中关于DatePicker和TimePicker的讲解 链接:重新想象 Windows 8.1 Store Apps (73) - 新增控件: DatePicker, TimePicker 首先Windows Phone 8.1的这两个选择器的使用和在Windows 8.1中的使用差不多. 1.前台DatePicker和TimePicker标签的使用没什么太大的问题,其中Header属性其实就是给选择器起个名字而已 DateChanged和TimeC

MySQL中日期和时间类型

1 日期类型 MySql中关于日期的类型有Date/Datetime/Timestamp三种类型. 日期赋值时,允许"不严格"语法:任何标点符都可以用做日期部分或时间部分之间的间割符.例如,'98-12-31 11:30:45'.'98.12.31 11+30+45'.'98/12/31 11*30*45'和'[email protected]@31 11^30^45'是等价的,对于不合法的将会转换为:0000-00-00 00:00:00 1.1 Date格式 此类型的字段,存储数据

JAVA中日期和时间的格式化选项

一.使用printf方法 1 import java.util.Date; 2 import java.util.Scanner; 3 4 5 public class Test { 6 7 public static void main(String[] args) { 8 9 System.out.printf("%tc"+"\n",new Date());//完整格式 10 System.out.printf("%tF"+"\n&

[转].NET 中日期和时间的格式化处理

http://www.0431cn.com/ygtd_wz_nr_2077.html 一.日期和时间的格式化处理: 1.绑定时格式化日期方法:  <asp:BoundColumn datafield="time" dataformatstring="{0:yyyy-MM-dd}"> </asp:BoundColumn> 2.数据控件如DataGrid/DataList等的件格式化日期方法:  e.Item.Cell[0].Text = Con

C#中日期和时间相加的方法

可能对于初入此行业人来说有些困惑,实现起来有一丝复杂. 比如说时间是:2016-08-05 14:46:30,中间过了56秒钟.要求得出56秒之后的时间格式是:年月日时分秒 下面介绍最简单的办法, model.calldate = msg.data[0].calldate;//起始接通时间 model.billsec_int = msg.data[0].billsec_int;//通话时长 var a = DateTime.Parse(model.calldate).AddSeconds(Con

mysql更新表中日期字段时间

DATE_ADD和DATE_SUB函数可以用INTERVAL关键字标识的时间间隔进行加减操作,类似于PHP中的strtotime函数. 1.更新表中有效期valid_time字段值都增加一天 UPDATE cqh_activity SET valid_time=DATE_ADD(valid_time,INTERVAL 1 DAY); 2.更新表中有效期valid_time字段值都减少一天 UPDATE cqh_activity SET valid_time=DATE_SUB(valid_time

sql语句中日期时间格式化查询

      今天在做会员管理系统搜索时,我发现以前的搜索时间方式不太科学,效率也不是太高.由其是在查询指定的时间相等的时候,我在数据库中都存这样的时间格式"2007-5-22 14:32:12"当我们在查询2007-5-22是否与它相等,结果是不相等的.      所我们都喜欢找其它途径来解决这个问题.但是我发现我们的方法都不是太好,因为我们有的时候对sql sever的语句特性还了解的不够彻底.所以我查询了查sql server有帮助,终于发现个好东西,可以解决这个问题. CONVE