卜娃娃|最硬核的「Java8时间系统」设计原理与使用方法( 八 )
一个总秒数和一个偏移量Id 。 其本质就是偏移的秒数 , 但是直接用秒数在有些时候不够人性化 , 所以还给了个字符串类型的Id , 它的格式如下图22:
这种格式比较友好、比较直观 , 但最后还是要给算成一个总秒数 。 算是换了一种好的表达方式吧 。 Instant类揭秘 , 先看它的存储字段 , 如下图23:
一个秒数和一个纳秒数两个字段 。 这两个字段的值就是从系统当前经过的“毫秒数”里算出来的 。 所以它是一个时刻 , 就是一瞬间的意思 。 系统当前默认时刻的获取方法 , 如下图24:
可以看到是UTC的时刻 , 即0时区的时刻 。 再次说明全世界任何地方的时刻都是一样的 , 而时间的不同就是因为时区的不同造成的时间偏移量不同 。 Duration类揭秘 , 先看它的存储字段 , 如下图25:
一个秒数和一个纳秒数两个字段 。 这两字段存储的是一段时间(也称时长) , 所有这个类表示一段时间 , 这段时间可以是正的 , 也可以是负的 。 Period类揭秘 , 先看它的存储字段 , 如下图26:
一个年数、一个月数和一个日数三个字段 。 这个类也表示一段时间(也称时长) , 只不过它是以对人类有意义的方式来存储 , 比如截止到今天 , 我已经工作了10年9个月6天啦 。 Duration类和Period类都表示一段时间 , 除了表达方式上的不同之外 , 还有一个重要的点 , Duration类在进行加减的时候 , 都是加减的精确时间 , 比如1天就是24小时 。 Period类在进行加减的时候 , 加减的都是概念上的时间 , 特别是在时区调整的时候 , 它会维持当地时间的合理性 , 而Duration类则不会 。 比如夏令时到来 , 在时区即将提前1一个的时候 , 在18:00的时候加上1天 , 如果是Period类 , 则加完后是第二天的18:00 , 他会自动处理时区提前产生的裂缝 。 如果是Duration类 , 则加完后是第二天的19:00 , 它是精确的加上了24小时 , 又由于时区提前产生了1小时的裂缝 , 因此等于加上了25小时 。 Period类的年数/月数/日数三个字段之间 , 互相不影响 , 每个都可以随意的为正数或负数 。 Year类只存了一个年份、YearMonth类只存了年月、MonthDay类只存了月日 , 这些都是在特定情况下会用到的类 , 它们的情况和大多数人理解的一样 。 常用的时间操作如果要获取当前时间的话 , 用的都是now()方法 , 默认是本地时区 , 也可以指定别的时区 , 如下图27:
如果要从指定的数据构建的话 , 用的都是of()方法 , 如下图28:
如果要从字符串解析的话 , 用的都是parse()方法 , 如下图29:
- 点亮精彩生活|“芭比娃娃”卸妆火了!当素颜曝光那一刻,网友:吓的我一哆嗦!
- 琉璃娃娃的梦|最经典的“许仙”反串女演员叶童结婚多年无子,近照流出老态尽显
- 帅不过三秒|求赵露思别再穿娃娃裙了,裙摆只是加了层褶,腿就显瘦到我崩溃
- 琉璃娃娃的梦|李佳琦也要出道拍戏?古装造型帅如邓伦,网红逆袭成功好励志
- 卜娃娃|音视频开发4. ZLMediaKit库入门使用 编译安装
- 养生知多少|张佳宁看着哪里像30岁?穿蕾丝娃娃领波点裙,就是个18岁小姐姐
- 卜娃娃|飒粉福利|瞧,她在丽江嗨.....
- 日剧盘点|这仍是我熟悉的张雪迎吗?麻花辫配娃娃裙,简直软萌到不像话
- 穿搭|柳岩这回把好身材都藏起来,吊带娃娃装配开叉裤,不露反而更气质
- 卜娃娃|能听声辨位、追踪脚步,这个智能摄像头还是小黄人