- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
JAVA 8:健壮、易用的时间/ 日期A PI - ImportNew 2016/3/22
,
- 导航条 -
JAVA 8 :健壮、易用的时间/ 日期API
分享到 : 18
原文出处 : About Ro andz
对很多应用来说 ,时间和日期的概念都是必须的。像生日 ,租赁期 ,事件的时间戳和商店营业时长 ,等等 ,都是基于时间和
日期的 ;然而 ,Java却没有好的API来处理它们。在Java SE 8中 ,添加了一个新包 :java.time ,它提供了结构良好的API
来处理时间和日期。
历史
在Java刚刚发布 ,也就是版本1.0的时候 ,对时间和日期仅有的支持就是java.util.Date类。大多数开发者对它的第一印象就
是 ,它根本不代表一个 “日期”。实际上 ,它只是简单的表示一个 ,从1970-01-01Z开始计时的 ,精确到毫秒的瞬时点。
由于标准的toString()方法 ,按照JVM的默认时区输出时间和日期 ,有些开发人员把它误认为是时区敏感的。
在升级Java到1.1期间 ,Date类被认为是无法修复的。由于这个原因 ,java.util.Calendar类被添加了进来。悲剧的
是 ,Calendar类并不比java.util.Date好多少。它们面临的部分问题是 :
可变性。像时间和日期这样的类应该是不可变的。
偏移性。Date中的年份是从1900开始的 ,而月份都是从0开始的。
命名。Date不是 “日期” ,而Calendar也不真实 “日历”。
格式化。格式化只对Date有用 ,Calendar则不行。另外 ,它也不是线程安全的。
大约在2001年 ,Joda-Time项目开始了。它的目的很简单 ,就是给Java提供一个高质量的时间和日期类库。尽管被耽搁了
一段时间 ,它的1.0版还是被发布。很快 ,它就成为了广泛使用和流行的类库。随着时间的推移 ,有越来越多的需求 ,要在
JDK中拥有一个像Joda-Time的这样类库。在来自巴西的Michae Nascimento Santos的帮助下 ,官方为JDK开发新的时
间/ 日期API的进程 :JSR-310 ,启动了。
综述
新的API :java.time ,由5个包组成 :
j ava.time – 包含值对象的基础包
j ava.time.chrono – 提供对不同的日历系统的访问
j ava.time.format – 格式化和解析时间和日期
j ava.time.tempora – 包括底层框架和扩展特性
j ava.time.zone – 包含时区支持的类
大多数开发者只会用到基础和 ormat包 ,也可能会用到temporal包。因此 ,尽管有68个新的公开类型 ,大多数开发者 ,大
概 ,将只会用到其中的三分之一。
日期
在新的API中 ,LocalDate是其中最重要的类之一。它是表示日期的不可变类型 ,不包含时间和时区。
“本地” ,这个术语 ,我们对它的熟悉来自于Joda-Time。它原本出自ISO-8061的时间和日期标准 ,它和时区无关。实际
上 ,本地日期只是日期的描述 ,例如 “2014年4月5日”。特定的本地时间 ,因你在地球上的不同位置 ,开始于不同的时间
JAVA 8:健壮、易用的时间/ 日期A PI - ImportNew 2016/3/22
线。所以 ,澳大利亚的本地时间开始的比伦敦早10小时 ,比旧金山早18小时。
LocalDate被设计成 ,它的所有方法 ,都是常用方法 :
1 LocalDate date = LocalDate.of(2014, Month.JUNE, 10)
2 int year = date.getYear() // 2014
3 Month month = date.getMonth() // 6月
4 int dom = date.getDayOfMonth() // 10
5 DayOfWeek dow = date.getDayOf
文档评论(0)