5.日期时间

(1)【强制】日期格式化时,传入 pattern 中表示年份统一使用小写的 y。
说明:日期格式化时,yyyy 表示当天所在的年,而大写的 YYYY 代表是 week in which year(JDK7 之后引入的概念),意思是当天所在的周属于的年份,一周从周日开始,周六结束,只要本周跨年,返回的 YYYY就是下一年。
正例: 表示日期和时间的格式如下所示:

new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")

备注: 例如2021年12月31日,所在的周的最后一天是2022.1.1日所以YYYY返回的年为2022年,所以在日期使用的时候用yyyy-MM-dd HH:mm:ss格式就可以了。

运行效果:

(2)【强制】在日期格式中分清楚大写的 M 和小写的 m,大写的 H 和小写的 h 分别指代的意义。
说明: 日期格式中的这两对字母表意如下:

  • 表示月份是大写的 M;
  • 表示分钟则是小写的 m;
  • 24 小时制的是大写的 H;
  • 12 小时制的则是小写的 h。

(3)【强制】获取当前毫秒数:System.currentTimeMillis(); 而不是 new Date().getTime()
说明:如果想获取更加精确的纳秒级时间值,使用 System.nanoTime 的方式。在 JDK8 中,针对统计时间等场景,推荐使用 Instant 类。

相关链接学习:
Java 8 Instant 时间戳小记
new Date().getTime()和System.currentTimeMillis()获取时间戳的比较

(4)【强制】不允许在程序任何地方中使用:

  • java.sql.Date
  • java.sql.Time
  • java.sql.Timestamp。

说明: 第 1 个不记录时间,getHours()抛出异常;第 2 个不记录日期,getYear()抛出异常;第 3 个在构造方法 super((time/1000)*1000),fastTime 和 nanos 分开存储秒和纳秒信息。
反例: java.util.Date.after(Date)进行时间比较时,当入参是 java.sql.Timestamp 时,会触发 JDKBUG(JDK9 已修复),可能导致比较时的意外结果。

(5)【强制】不要在程序中写死一年为 365 天,避免在公历闰年时出现日期转换错误或程序逻辑错误。
正例:

反例:

(6) 【推荐】避免公历闰年 2 月问题。闰年的 2 月份有 29 天,一年后的那一天不可能是 2 月 29日。

(7) 【推荐】使用枚举值来指代月份。如果使用数字,注意 Date,Calendar 等日期相关类的月份month 取值在 0-11 之间。
说明: 参考 JDK 原生注释,Month value is 0-based. e.g., 0 for January.
正例: Calendar.JANUARY,Calendar.FEBRUARY,Calendar.MARCH 等来指代相应月份来进行传参或比较。

阿里巴巴Java开发文档2020版学习-日期时间相关推荐

  1. python飞机大战概要设计_飞机大战游戏开发文档(Android版)

    飞机大战游戏 开发文档 (Android版) 课程名称:飞机大战游戏 课程类型:Android游戏编程精彩内容,尽在百度攻略:https://gl.baidu.com 姓名:苏均灿 学号:131342 ...

  2. 【校招VIP】线上实习 推推 书籍详情模块 Java开发文档周最佳

    [推推]主要是为校招设计的小说一更新就通知的项目,每个模块都具有亮点和难点,项目表现为手机网站应用,可嵌入小程序或APP中. 恭喜来自 四川师范大学 的 o0hana 同学获得本周线上实习[推推]第一 ...

  3. 【校招VIP】“推电影”第一期电影详情模块Java开发文档作业评审1

    前言:关于[推电影]免费在线实习项目 一.本项目是基于年轻人的喜好,更个性的电影推荐网站.筛选各分类的知名电影,并给出推荐理由和下载链接.另外,通过标签功能匹配个人喜好,实现个性化推送. 二.项目表现 ...

  4. anychat java开发文档_AnyChat视频云平台开发指南

    本帖最后由 佰锐科技-刘冬明 于 2017-9-13 11:59 编辑 简介: AnyChat视频云平台提供线上的音视频通信.多应用接入.即时通讯.全景录像.智能排队,直播.点播等服务.为您定制个性化 ...

  5. java 自动生成文档_[原]java开发文档的自动生成方式

    对于Java注释我们主要了解三种: // 注释一行 /* ...... */ 注释若干行 第三种,文档注释: /** ...... */ 注释若干行,并写入 javadoc 文档 通常这种注释的多行写 ...

  6. 阿里巴巴java开发手册(2020版)

    2020版 链接: https://pan.baidu.com/s/1Zls_FUBKfGksU1GR3BGGGA 密码:titz 2019版 链接:https://pan.baidu.com/s/1 ...

  7. java开发文档怎么写_程序员该不该写技术文档,怎么写文档,易懂又能提升自己...

    最近公司项目的调用量突然涨了一大波,很多系统都纷纷扛不住了,于是需要对系统进行优化,系统优化的第一步,便是梳理业务! 在这个过程中,经常出现了这样一些情况,发现数据库的某些字段,没有注释,也没有一定的 ...

  8. netty java开发文档_Netty简明教学文档

    写个简单点,比较小白的文档,言语比较接地气 Netty是什么? NIO的高层封装,NIO很难写,所以有了Netty,方便异步的操作 service的主要代码片段 public void run() t ...

  9. netty java开发文档_《Netty官方文档》设置开发环境

    原文链接 译者:dan   QQ:903585177 请注意:这个指南并不是用户指南,它是开发 Netty 本身的指南,而不是使用Netty 开发其他程序的指南. 使用64位操作系统 必须使用64位操 ...

  10. java 开发文档协作_Java 网络编程---分布式文件协同编辑器设计与实现

    目录: 第一部分:Java网络编程知识 (一)简单的Http请求 一般浏览网页时,使用的时Ip地址,而IP(Internet Protocol,互联网协议)目前主要是IPv4和IPv6. IP地址是一 ...

最新文章

  1. 《松本行弘的程序世界》中文版原作者序
  2. oracle32位11g中文乱码,win7 64位系统 Oracle32bit + PL/SQL访问Orale服务,Oracle 11g的安装,中文乱码问题的解决...
  3. Linux sudo找不到命令:修改sudo的PATH路径
  4. Linux日志被删处理方法
  5. python的搜题软件-2020中国大学MOOC的APP慕课Python编程基础题目答案
  6. Java来做马里奥[0]—让精灵再次舞动
  7. Linux下源码安装ElasticResearch
  8. php获取省市区区划代码,使用PHP解析行政区划代码
  9. Redhat 更换阿里yum源
  10. SPL lookup
  11. Android代码实现——拨打电话和发送短信APP
  12. 龙之气息服务器维修,龙之气息转职NPC位置大全 转职NPC在哪找
  13. 【Python】EasyGUI实例——实现NJUCM绩点计算器程序
  14. 【linux】僵尸进程(Defunct进程)的产生与避免
  15. vue-element-admin动态加载接口和报错解决
  16. 【PaddleNLP实战】对话意图分类方案
  17. 基于Linux+ARM的远程视频监控--系列开题
  18. 桌面云、云桌面的区别
  19. 【重磅整理】提前看287篇ICLR-2021 深度强化学习领域论文得分汇总列表
  20. HEVC算法和体系结构:编码框架

热门文章

  1. 哈曼基于英特尔计算平台(Apollo Lake和ACRN)展示新一代“智能驾驶舱”
  2. 各行各业有对象系列之三:对象存储与银行
  3. 【TSP】基于matlab蚁群算法求解31城市旅行商问题【含Matlab源码 1147期】
  4. 【图像处理】基于matlab GUI打靶仿真系统【含Matlab源码 1043期】
  5. 【优化求解】基于matlab罚函数的粒子群算法函数寻优【含Matlab源码 216期】
  6. Spring中@Autowired注入static静态变量空指针异常
  7. linux git 撤销删除文件,git 撤销回滚学习
  8. php 怎么更新浏览器缓存文件在哪里,PHP 设置动态网页在浏览器的缓存
  9. 初一计算机课学什么,初一有哪几门课程 各科满分是多少
  10. python:argsort(返回元素排序后的索引值)