1. package com.yixin.webbrower;
  2. /*
  3. * 演示 Calendar 的一般操作
  4. */
  5. import java.util.Date;
  6. import java.text.SimpleDateFormat;
  7. import java.text.DateFormat;
  8. import java.util.Calendar;
  9.  
  10. public class TestTime
  11. {
  12. public TestTime()
  13. {
  14. }
  15.  
  16. public static void main(String[] args)
  17. {
  18. // 字符串转换日期格式
  19. DateFormat fmtDateTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  20.  
  21. // 完整显示日期时间
  22. String str = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS")).format(new Date());
  23. System.out.println(str);
  24.  
  25. // 创建 Calendar 对象
  26. Calendar calendar = Calendar.getInstance();
  27. // 初始化 Calendar 对象,但并不必要,除非需要重置时间
  28. calendar.setTime(new Date());
  29.  
  30. // setTime 类似上面一行
  31. // Date date = new Date();
  32. // calendar.setTime(date);
  33.  
  34. // 显示年份
  35. int year = calendar.get(Calendar.YEAR);
  36. System.out.println("YEAR is = " + String.valueOf(year));
  37.  
  38. // 显示月份 (从0开始, 实际显示要加1)
  39. int MONTH = calendar.get(Calendar.MONTH);
  40. System.out.println("MONTH is = " + (MONTH + 1));
  41.  
  42. // 今年的第 N 天
  43. int DAY_OF_YEAR = calendar.get(Calendar.DAY_OF_YEAR);
  44. System.out.println("DAY_OF_YEAR is = " + DAY_OF_YEAR);
  45.  
  46. // 本月第 N 天
  47. int DAY_OF_MONTH = calendar.get(Calendar.DAY_OF_MONTH);
  48. System.out.println("DAY_OF_MONTH = " + String.valueOf(DAY_OF_MONTH));
  49.  
  50. // 3小时以后
  51. calendar.add(Calendar.HOUR_OF_DAY, 3);
  52. int HOUR_OF_DAY = calendar.get(Calendar.HOUR_OF_DAY);
  53. System.out.println("HOUR_OF_DAY + 3 = " + HOUR_OF_DAY);
  54.  
  55. // 当前分钟数
  56. int MINUTE = calendar.get(Calendar.MINUTE);
  57. System.out.println("MINUTE = " + MINUTE);
  58.  
  59. // 15 分钟以后
  60. calendar.add(Calendar.MINUTE, 15);
  61. MINUTE = calendar.get(Calendar.MINUTE);
  62. System.out.println("MINUTE + 15 = " + MINUTE);
  63.  
  64. // 30分钟前
  65. calendar.add(Calendar.MINUTE, -30);
  66. MINUTE = calendar.get(Calendar.MINUTE);
  67. System.out.println("MINUTE - 30 = " + MINUTE);
  68.  
  69. // 格式化显示
  70. str = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS")).format(calendar.getTime());
  71. System.out.println(str);
  72.  
  73. // 重置 Calendar 显示当前时间
  74. calendar.setTime(new Date());
  75. str = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS")).format(calendar.getTime());
  76. System.out.println(str);
  77.  
  78. // 创建一个 Calendar 用于比较时间
  79. Calendar calendarNew = Calendar.getInstance();
  80.  
  81. // 设定为 5 小时以前,后者大,显示 -1
  82. calendarNew.add(Calendar.HOUR, -5);
  83. System.out.println("时间比较:" + calendarNew.compareTo(calendar));
  84.  
  85. // 设定7小时以后,前者大,显示 1
  86. calendarNew.add(Calendar.HOUR, +7);
  87. System.out.println("时间比较:" + calendarNew.compareTo(calendar));
  88.  
  89. // 退回 2 小时,时间相同,显示 0
  90. calendarNew.add(Calendar.HOUR, -2);
  91. System.out.println("时间比较:" + calendarNew.compareTo(calendar));
  92. }
  93. }

演示 Calendar 的一般操作的更多相关文章

  1. calendar的一些操作

    一.通过分析日期函数,根据日期进行一系列操作,例如:我们需要知道2个时间段中所有的日期等等. 由于Calendar 类是一个抽象类,因此我们不能通过new来获取该对象的实例.我们可以通过其类方法 ge ...

  2. java日期处理总结(二)

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAzUAAAG1CAIAAABPoU1KAAAgAElEQVR4nOy9e1xU1d747znP9/V9nu

  3. 用LinkedList集合演示栈和队列的操作

    在数据结构中,栈和队列是两种重要的线性数据结构.它们的主要不同在于:栈中存储的元素,是先进后出:队列中存储的元素是先进先出.我们接下来通过LinkedList集合来演示栈和队列的操作. import ...

  4. ASP.Net Core 中使用Zookeeper搭建分布式环境中的配置中心系列一:使用Zookeeper.Net组件演示基本的操作

    前言:马上要过年了,祝大家新年快乐!在过年回家前分享一篇关于Zookeeper的文章,我们都知道现在微服务盛行,大数据.分布式系统中经常会使用到Zookeeper,它是微服务.分布式系统中必不可少的分 ...

  5. 正则表达式、Calendar类、SimpleDateFormat类、Date类、BigDecimal类、BigInteger类、System类、Random类、Math类(Java基础知识十四)

    1.正则表达式的概述和简单使用 * A:正则表达式(一个字符串,是规则)     * 是指一个用来描述或者匹配一系列符合某个语法规则的字符串的单个字符串.其实就是一种规则.有自己特殊的应用. * B: ...

  6. [常用类]时间内Date、SimpleDateFormat、Calendar类

    Date类的概述是util包下的,不能导入sql包的.* 类 Date 表示特定的瞬间,精确到毫秒. *构造方法 * public Date() * public Date(long date) 如果 ...

  7. 《Python操作SQLite3数据库》快速上手教程

    为什么使用SQLite数据库? 对于非常简单的应用而言,使用文件作为持久化存储通常就足够了,但是大多数复杂的数据驱动的应用需要全功能的关系型数据库.SQLite的目标则是介于两者之间的中小系统.它有以 ...

  8. MongoDB基础入门002--基本操作,增删改查

    一.这里只是演示最基本的操作,更多的信息可以去官网.https://docs.mongodb.com/manual 打开一个cmd,输入mongo命令打开shell,其实这个shell就是mongod ...

  9. 演示Android百度地图操作功能

    在本文中将演示百度地图的操作功能,包括缩放,旋转,视角切换,点击,双击,长按事件触发的操作以及截图等.百度地图本来就内置有缩放,旋转功能,那么在这里,截图(其实很多手机也自带截图功能)以及点击事件的监 ...

随机推荐

  1. jdbc预编译

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp20 JAVA_JDBC预编译 相关知识点 什么是预编译语句? 预编译语句P ...

  2. Rational Rose2013安装及破解教程

    1.下载地址:http://pan.baidu.com/s/1mhKGfHY 2.安装:解压缩文件"[Rational.Rose.Enterprise.Edition.2003].Softw ...

  3. 英语APP体验

    第一部分 1.下载并使用,描述最简单直观的个人第一次上手体验. 感觉不是很好用,可能是个人习惯吧,之前用的都是扇贝单词和有道词典,所以不是特别顺手. 2.找出几个功能性的比较严重的 bug 在口语挑战 ...

  4. 【Beta】Daily Scrum Meeting——Day7

    站立式会议照片 1.本次会议为第七次Meeting会议: 2.本次会议在中午12点,在陆大楼召开,本次会议为30分钟讨论今天要完成的任务以及接下来的任务安排. 燃尽图 每个人的工作分配 成 员 昨天已 ...

  5. [2017BUAA软工助教]收集个人信息

    如题 我们要收集三个东西 1.学号 2.Github地址 ① 3.博客园博客地址 ② 请各位同学自行创建,并按照如下的格式评论在这篇博客下 "14061195+https://github. ...

  6. 201521123063 《Java程序设计》 第12周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 读操作 (1)读取控制台输入: BufferedReader br = new BufferedReader( ...

  7. 201521123065《java程序设计》第10周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 2. 书面作业 本次PTA作业题集异常.多线程 finally 题目4-2 1.1 截图你的提交结果(出现学 ...

  8. 201521123049 《JAVA程序设计》 第11周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2. 书面作业 本次PTA作业题集多线程 1.互斥访问与同步访问 完成题集4-4(互斥访问)与4-5(同步访问) ...

  9. 搭建连接MySql的三层架构的ASP.NetCore2.0的WebApi

    里我们用三层架构搭建一个连接MySql的ASP.netCore模板的WebApi项目 首先添加WebApi项目(ASP.NetCore版本) 右键解决方案>新建项目> 选择Web>A ...

  10. sed命令基础

    sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响.处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间"(pattern space ...