想要得到2021年7月1日0时0分0秒0毫秒,代码如下:

Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, 2021);
calendar.set(Calendar.MONTH, 6);
calendar.set(Calendar.DATE, 1);
calendar.set(Calendar.HOUR, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
System.out.println(calendar.getTime());

但输出结果和预期不一致:

Thu Jul 01 12:00:00 CST 2021

后来才知道,Calendar.HOUR是12小时制,Calendar.HOUR_OF_DAY才是24小时制,所以代码要改成:

Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, 2021);
calendar.set(Calendar.MONTH, 6);
calendar.set(Calendar.DATE, 1);
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
System.out.println(calendar.getTime());

执行结果:

Thu Jul 01 00:00:00 CST 2021

那么,如何使用12小时制输出上面的结果呢?尝试发现,将Calendar.HOUR设置为-12就可以了。

Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, 2021);
calendar.set(Calendar.MONTH, 6);
calendar.set(Calendar.DATE, 1);
calendar.set(Calendar.HOUR, -12);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
System.out.println(calendar.getTime());

执行结果:

Thu Jul 01 00:00:00 CST 2021

参考:
https://blog.csdn.net/zsg88/article/details/70156979

java Calendar踩坑:Calendar.HOUR是12小时制相关推荐

  1. Java中如何将时间设置为12小时制并区分上下午

    //中文 上午/下午SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd a hh:mm");System.out.pri ...

  2. 【Java笔记+踩坑】SpringBoot基础3——开发。热部署+配置高级+整合NoSQL/缓存/任务/邮件/监控

      导航: [黑马Java笔记+踩坑汇总]JavaSE+JavaWeb+SSM+SpringBoot+瑞吉外卖+SpringCloud/SpringCloudAlibaba+黑马旅游+谷粒商城 目录 ...

  3. 【Java笔记+踩坑】SpringBoot基础2——运维实用

      导航: [黑马Java笔记+踩坑汇总]JavaSE+JavaWeb+SSM+SpringBoot+瑞吉外卖+SpringCloud/SpringCloudAlibaba+黑马旅游+谷粒商城 目录 ...

  4. 【Java笔记+踩坑】SpringBoot——基础

      导航: [黑马Java笔记+踩坑汇总]JavaSE+JavaWeb+SSM+SpringBoot+瑞吉外卖+SpringCloud/SpringCloudAlibaba+黑马旅游+谷粒商城 目录 ...

  5. android calendar 24小时制,Android 使用SimpleDateFormat以及Calendar转换时间为12小时制和24小时制时间格式...

    由于项目需要,有些地方要使用12小时制时间格式,而有些地方使用的24小时制时间格式 通过研究代码,原来...So easy,现将实现的方法写下来和大家分享 使用SimpleDateFormat时格式化 ...

  6. 西安交通大学915考研--编程题Java代码踩坑(2020年真题)

    西安交通大学915考研–编程题Java代码踩坑(2020年真题) 目录 西安交通大学915考研--编程题Java代码踩坑(2020年真题) 2020.1--寻找方程组的解 2020.2--几组数中筛选 ...

  7. 【Java】Date类型获取年月日时分秒的两种方法(12小时制、24小时制)

    Java的Date类型是,提供用来描述日期时间的类,它可以存储时间的年月日.时分秒的信息.但是如何从Date的实例中获取这些信息呢? 以前Date提供了一系列的get方法来获取,但是这些方法现在都被弃 ...

  8. java实现12小时制和24小时制的时间

    java实现12小时制和24小时制的时间转换 //****************@Testpublic void atest(){Date today = new Date();SimpleDate ...

  9. 【Java】将输入的 24 小时制时间转换为 12 小时制时间

    一.题目描述 题目内容: 编写一个程序,要求用户输入24小时制的时间,然后输出显示12小时制的时间. 输入格式: 在一行中输入带有中间的:符号(半角的冒号)的24小时制的时间,小时和分钟均采用2位数字 ...

最新文章

  1. jQuery 学习笔记之九 (jQuery 图片提示 )
  2. Spring AOP学习
  3. 香港计算机mphil申请成功案例,香港稀有CS MPhil录取:申请也有起死回生的惊喜...
  4. firefox扩展开发(八) :控件激活
  5. matlab脑电信号特征提取,一种脑电信号实时特征提取方法与流程
  6. DotNetNuke(DNN)皮肤制作--如何修改DNN中众多的CSS文件
  7. 【1】Keras复习之模型,层,训练,评估与预测
  8. Linux宝库名人轶事栏目 | 智能化之边缘计算浅析
  9. 六十八个经典管理小故事
  10. 机器人编程按时巡线_活动回顾 丨巡线机器人编程活动带小朋友体验游戏设计的乐趣...
  11. python PIL图片转PDF
  12. Android 外网远程连接真机进行开发调试
  13. mysql skip-grant-tables my.cnf_使用SKIP-GRANT-TABLES解决MYSQLROOT密码丢失
  14. python nonetype iterable_无法解决“NoneType”对象不是iterable类型
  15. 中国古代30大名将VS100名将排行(按时间顺序)
  16. PyQt5渐变圆环水波进度条+透明淡入(多线程信号)
  17. JMeter 远程启动报错:java.rmi.ConnectException: Connection refused to host: 127.0.0.1; nested exception is:
  18. 趣味js之斗牛算法详解
  19. Oracle ERP 仓库(inventory) 词汇 2
  20. Swoole 介绍以及三步快速安装 swoole 教程

热门文章

  1. vue定时器问题(单个定时器和循环定时器)
  2. android自动获取系统时间,Android--获取系统时间的几种方式
  3. Linux远程终端连接
  4. Linux sftp远程连接
  5. 漏洞复现-webmin漏洞系列分析与利用
  6. 微服务框架 SpringCloud微服务架构 26 数据聚合 26.5 多条件聚合
  7. 苹果x屏幕出现一条绿线_部分用户反映苹果 iPhone 12 屏幕出现划痕
  8. svn更新报错:svn:Checksum mismatch while updating;expected: '9a8c8856b74e4545bf2e52e2b54b23a6', actual: '
  9. 第九届“国际信誉品牌”和第二十届“深圳知名品牌”申报指南通知
  10. 常用正则匹配及字符范围