#怎样获取当前时间和时区_JDK1.8新增日期时间类型
如果我们可以跟别人说:“我们在1502643933071见面,别晚了!”那么就再简单不过了。但是我们希望时间与昼夜和四季有关,于是事情就变复杂了。Java1.0中包含了一个Date类,但是它的大多数方法已经在Java 1.1引入Calendar类之后被弃用了。而Calendar并不比Date好多少。它们面临的问题是:
可变性:象日期和时间这样的类应该是不可变的。Calendar类中可以使用三种方法更改日历字段:set()、add() 和 roll()。
偏移性:Date中的年份是从1900开始的,而月份都是从0开始的。
格式化:格式化只对Date有用,Calendar则不行。
此外,它们也不是线程安全的,不能处理闰秒等。
可以说,对日期和时间的操作一直是Java程序员最痛苦的地方之一。第三次引入的API是成功的,并且java 8中引入的java.time API 已经纠正了过去的缺陷,将来很长一段时间内它都会为我们服务。
Java 8 吸收了 Joda-Time 的精华,以一个新的开始为 Java 创建优秀的 API。
java.time – 包含值对象的基础包
java.time.chrono – 提供对不同的日历系统的访问。
java.time.format – 格式化和解析时间和日期
java.time.temporal – 包括底层框架和扩展特性
java.time.zone – 包含时区支持的类
Java 8 吸收了 Joda-Time 的精华,以一个新的开始为 Java 创建优秀的 API。新的 java.time 中包含了所有关于时钟(Clock),本地日期(LocalDate)、本地时间(LocalTime)、本地日期时间(LocalDateTime)、时区(ZonedDateTime)和持续时间(Duration)的类。历史悠久的 Date 类新增了 toInstant() 方法,用于把 Date 转换成新的表示形式。这些新增的本地化时间日期 API 大大简化了了日期时间和本地化的管理。
说明:大多数开发者只会用到基础包和format包,也可能会用到temporal包。因此,尽管有68个新的公开类型,大多数开发者,大概将只会用到其中的三分之一。
java.time
本地日期(LocalDate)、本地时间(LocalTime)、本地日期时间(LocalDateTime)
LocalDate代表IOS格式(yyyy-MM-dd)的日期,可以存储 生日、纪念日等日期。
LocalTime表示一个时间,而不是日期
LocalDateTime是用来表示日期和时间的,这是一个最常用的类之一。
瞬时:Instant
Instant:时间线上的一个瞬时点。 这可能被用来记录应用程序中的事件时间戳。
在处理时间和日期的时候,我们通常会想到年,月,日,时,分,秒。然而,这只是时间的一个模型,是面向人类的。第二种通用模型是面向机器的,或者说是连续的。在此模型中,时间线中的一个点表示为一个很大的数,这有利于计算机处理。在UNIX中,这个数从1970年开始,以秒为的单位;同样的,在Java中,也是从1970年开始,但以毫秒为单位。
java.time包通过值类型Instant提供机器视图。Instant表示时间线上的一点,而不需要任何上下文信息,例如,时区。概念上讲,它只是简单的表示自1970年1月1日0时0分0秒(UTC)开始的秒数。因为java.time包是基于纳秒计算的,所以Instant的精度可以达到纳秒级。
时间戳:指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。
带时区的日期、时间的处理
作为一个开发者,如果不用去处理时区和它带来的复杂性,那是幸运的。java.time包下的LocalDate、LocalTime、LocalDateTime和Instant基本能满足需求。当你不可避免时区时,ZonedDateTime等类可以满足我们的需求。
ZonedDateTime:一个在ISO-8601日历系统时区的日期时间,如 2007-12-03T10:15:30+01:00 Europe/Paris。
其中每个时区都对应着ID,地区ID都为“{区域}/{城市}”的格式,例如:Asia/Shanghai等
now():使用系统时间获取当前的ZonedDateTime
now(ZoneId):返回指定时区的ZonedDateTime
ZoneId:该类中包含了所有的时区信息,一个时区的ID,如 Europe/Paris
getAvailableZoneIds():静态方法,可以获取所有时区信息
of(String id):静态方法,用指定的时区信息获取ZoneId对象
Clock:使用时区提供对当前即时、日期和时间的访问的时钟。
持续时间:Duration
Duration:用于计算两个“时间”间隔
日期间隔:Period
Period:用于计算两个“日期”间隔
java.time.temporal .TemporalAdjuster : 时间校正器
TemporalAdjuster : 时间校正器。有时我们可能需要获取例如:将日期调整到“下一个工作日”等操作。
TemporalAdjusters : 该类通过静态方法(firstDayOfXxx()/lastDayOfXxx()/nextXxx())提供了大量的常用 TemporalAdjuster 的实现。
java.time.format.DateTimeFormatter 类
该类提供了三种格式化方法:
预定义的标准格式。如:ISO_DATE_TIME;ISO_DATE
本地化相关的格式。如:ofLocalizedDate(FormatStyle.MEDIUM)
自定义的格式。如:ofPattern(“yyyy-MM-dd hh:mm:ss”)
与传统日期处理的转换
#怎样获取当前时间和时区_JDK1.8新增日期时间类型相关推荐
- convert.todatetime指定日期格式_JDK1.8新增日期时间类型
如果我们可以跟别人说:"我们在1502643933071见面,别晚了!"那么就再简单不过了.但是我们希望时间与昼夜和四季有关,于是事情就变复杂了.Java1.0中包含了一个Date ...
- ISO8601和UTC 时间,由秒数转化日期时间,日期到秒数
ISO8601和UTC 时间,由秒数转化日期时间,日期到秒数 ISO8601时间格式:2018-6-5T17:46:50Z UTC时间格式: 2018-06-05T03:46:50+08:00 等同 ...
- 两个时间计算毫秒在线_SPL 的日期时间函数(下)
4使用日期时间数据的计算 除了直接从日期时间数据中获取信息,在SPL中还可以使用日期时间类数据来执行各类计算. 最常用的有关日期的计算就是计算年龄: A1和B1中的数据如下: 在第2行用age() 函 ...
- python日期格式统一化: 各种日期时间格式处理为标准统一日期时间格式
python日期格式统一化: 各种日期时间格式处理为标准统一日期时间格式 import traceback import pandas as pd aa = ['2021年12月11日 19:19', ...
- 日历 android 周历,Android Studio 基础 之 获取系统Calendar 日历日程 (涉及指定日期时间判断是星期几的方法使用)的方法整理...
Android Studio 基础 之 获取系统Calendar 日历日程 (涉及指定日期时间判断是星期几的方法使用)的方法整理 目录 Android Studio 基础 之 获取系统Calendar ...
- android edittext获取 time值,在Android EditText中实现日期时间选择器(DatePicker和TimePicker)...
利用Android应用框架提供的DatePicker(日期选择器)和TimePicker(时间选择器),实现日期时间选择器. Dialog的Content布局文件(date_time_dialog.x ...
- java中时间输出的格式_Java 打印日期/时间格式
Java格式 - Java 打印日期/时间格式 Java 打印日期/时间格式处理日期,时间和日期时间值. Java 打印日期/时间格式可以应用于格式值为long,Long,java.util.Cale ...
- linux常用时间命令全集,Linux 指令篇:日期时间排程--date
Linux 指令篇:日期时间排程--date 名称 : date 使用权限 : 所有使用者 使用方式 : date [-u] [-d datestr] [-s datestr] [--utc] [-- ...
- date( 1day ) php,PHP_使用PHP的日期与时间函数技巧,PHP的日期时间函数date() 1,年- - phpStudy...
使用PHP的日期与时间函数技巧 PHP的日期时间函数date() 1,年-月-日 复制代码 代码如下: echo date('Y-m-j'); 2007-02-6 echo date('y-n-j') ...
- php 时间随机数,PHP——生成随机数和日期时间
在PHP里面两个常用的函数 rand(); 生成随机数 当括号内无参数时 系统会以当前时间为种子进行随机数的生成 rand(1,10); 括号里面是生成随机数的范围,在形成的随机数在1~1 ...
最新文章
- pandas中使用rolling.corr函数计算两个时间序列数据列之间的滚动相关性(Rolling correlations)、例如,计算两种商品销售额之间的3个月的滚动相关性
- 基于python的界面自动化测试-Python实现性能自动化测试竟然如此简单
- 15.profile-api
- 拥抱开源,好莱坞有了自己的开源基金会:学院软件基金会
- 幼儿编程学java不_《终于有人说出来了——Java不适合于作为主要编程教学语言》我的看法...
- Sitemesh 3 的使用及配置
- 滴滴医护专车新增南京 共上线6城覆盖1.8万医护
- 关于 HDFS Append
- ARC077C pushpush 递推
- OpenGl 游戏编程笔记 第七章:纹理映射 (texture mapping) (一)
- 在WIN10专业版上安装WINCC7.4的踩坑之路
- 规划过程组-项目管理
- C++ Reflection
- 读论文,第十六天:FrownOnError: Interrupting Responses from Smart Speakers by Facial Expressions
- python - 啃书 第八章 正则表达式
- 免费微信批量公众号采集文章方法
- Cadence PCB仿真使用Allegro PCB SI生成振铃ringing仿真报告及报告导读图文教程
- pap认证失败_PPP PAP(CHAP)认证
- r语言归一化_生物信息学之RMA(Robust Multi-Array Average)算法的归一化和最终计算过程...
- defy 超频/降频CPU设置
热门文章
- 机器学习Normal Equation的推导(不要求矩阵求导)
- 动态规划精卫填海之路
- echarts--(2)--创建一个饼图
- vue组件化开发学习笔记-3-组件插槽
- vue组件化开发学习笔记-1-组件化开发思想
- MongoDB学习(黑马教程)-3-数据库MongoDB的删除文档操作
- indesign缩放图片被切割_InDesign怎么改变图片的大小
- python opencv 中文路径_解决python cv2.imread 读取中文路径的图片返回为None的问题
- 网站并发cpu占用率_来,控制一下 goroutine 的并发数量
- python按照日期筛选excel_用python判断Excel单元格格式为输出日期(日期字段位置不固定)的,按datetime格式输出日期(而非float)_python excle 日期列...