1. JavaCalendar 类时间操作,这也许是创建和管理日历最简单的一个方案,示范代码很简单。

    演示了获取时间,日期时间的累加和累减,以及比较。

    原文地址:blog.csdn.NET/joyous/article/details/9630893

    注意事项:

    Calendar 的 month 从 0 开始,也就是全年 12 个月由 0 ~ 11 进行表示。

    而 Calendar.DAY_OF_WEEK 定义和值如下:

    Calendar.SUNDAY = 1

    Calendar.MONDAY = 2

    Calendar.TUESDAY = 3

    Calendar.WEDNESDAY = 4

    Calendar.THURSDAY = 5

    Calendar.FRIDAY = 6

    Calendar.SATURDAY = 7

    SimpleDateFormat 的格式定义

    Letter Date or Time Component Presentation Examples
    G Era designator Text AD
    y Year Year 199696
    Y Week year Year 200909
    M Month in year (context sensitive) Month JulyJul07
    L Month in year (standalone form) Month JulyJul07
    w Week in year Number 27
    W Week in month Number 2
    D Day in year Number 189
    d Day in month Number 10
    F Day of week in month Number 2
    E Day name in week Text TuesdayTue
    u Day number of week (1 = Monday, ..., 7 = Sunday) Number 1
    a Am/pm marker Text PM
    H Hour in day (0-23) Number 0
    k Hour in day (1-24) Number 24
    K Hour in am/pm (0-11) Number 0
    h Hour in am/pm (1-12) Number 12
    m Minute in hour Number 30
    s Second in minute Number 55
    S Millisecond Number 978
    z Time zone General time zone Pacific Standard TimePSTGMT-08:00
    Z Time zone RFC 822 time zone -0800
    X Time zone ISO 8601 time zone -08-0800-08:00


    Java Calendar 演示代码如下:

    1. package demo;
    2. import java.util.Date;
    3. import java.text.SimpleDateFormat;
    4. import java.text.DateFormat;
    5. import java.text.ParseException;
    6. import java.util.Calendar;
    7. public class Test
    8. {
    9. public Test()
    10. {
    11. }
    12. public static void main(String[] args)
    13. {
    14. // 字符串转换日期格式
    15. // DateFormat fmtDateTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    16. // 接收传入参数
    17. // String strDate = args[1];
    18. // 得到日期格式对象
    19. // Date date = fmtDateTime.parse(strDate);
    20. // 完整显示今天日期时间
    21. String str = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS")).format(new Date());
    22. System.out.println(str);
    23. // 创建 Calendar 对象
    24. Calendar calendar = Calendar.getInstance();
    25. try
    26. {
    27. // 对 calendar 设置时间的方法
    28. // 设置传入的时间格式
    29. SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-M-d H:m:s");
    30. // 指定一个日期
    31. Date date = dateFormat.parse("2013-6-1 13:24:16");
    32. // 对 calendar 设置为 date 所定的日期
    33. calendar.setTime(date);
    34. // 按特定格式显示刚设置的时间
    35. str = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS")).format(calendar.getTime());
    36. System.out.println(str);
    37. }
    38. catch (ParseException e)
    39. {
    40. e.printStackTrace();
    41. }
    42. // 或者另一種設置 calendar 方式
    43. // 分別爲 year, month, date, hourOfDay, minute, second
    44. calendar = Calendar.getInstance();
    45. calendar.set(2013, 1, 2, 17, 35, 44);
    46. str = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS")).format(calendar.getTime());
    47. System.out.println(str);
    48. // Calendar 取得当前时间的方法
    49. // 初始化 (重置) Calendar 对象
    50. calendar = Calendar.getInstance();
    51. // 或者用 Date 来初始化 Calendar 对象
    52. calendar.setTime(new Date());
    53. // setTime 类似上面一行
    54. // Date date = new Date();
    55. // calendar.setTime(date);
    56. str = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS")).format(calendar.getTime());
    57. System.out.println(str);
    58. // 显示年份
    59. int year = calendar.get(Calendar.YEAR);
    60. System.out.println("year is = " + String.valueOf(year));
    61. // 显示月份 (从0开始, 实际显示要加一)
    62. int month = calendar.get(Calendar.MONTH);
    63. System.out.println("nth is = " + (month + 1));
    64. // 本周几
    65. int week = calendar.get(Calendar.DAY_OF_WEEK);
    66. System.out.println("week is = " + week);
    67. // 今年的第 N 天
    68. int DAY_OF_YEAR = calendar.get(Calendar.DAY_OF_YEAR);
    69. System.out.println("DAY_OF_YEAR is = " + DAY_OF_YEAR);
    70. // 本月第 N 天
    71. int DAY_OF_MONTH = calendar.get(Calendar.DAY_OF_MONTH);
    72. System.out.println("DAY_OF_MONTH = " + String.valueOf(DAY_OF_MONTH));
    73. // 3小时以后
    74. calendar.add(Calendar.HOUR_OF_DAY, 3);
    75. int HOUR_OF_DAY = calendar.get(Calendar.HOUR_OF_DAY);
    76. System.out.println("HOUR_OF_DAY + 3 = " + HOUR_OF_DAY);
    77. // 当前分钟数
    78. int MINUTE = calendar.get(Calendar.MINUTE);
    79. System.out.println("MINUTE = " + MINUTE);
    80. // 15 分钟以后
    81. calendar.add(Calendar.MINUTE, 15);
    82. MINUTE = calendar.get(Calendar.MINUTE);
    83. System.out.println("MINUTE + 15 = " + MINUTE);
    84. // 30分钟前
    85. calendar.add(Calendar.MINUTE, -30);
    86. MINUTE = calendar.get(Calendar.MINUTE);
    87. System.out.println("MINUTE - 30 = " + MINUTE);
    88. // 格式化显示
    89. str = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS")).format(calendar.getTime());
    90. System.out.println(str);
    91. // 重置 Calendar 显示当前时间
    92. calendar.setTime(new Date());
    93. str = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS")).format(calendar.getTime());
    94. System.out.println(str);
    95. // 创建一个 Calendar 用于比较时间
    96. Calendar calendarNew = Calendar.getInstance();
    97. // 设定为 5 小时以前,后者大,显示 -1
    98. calendarNew.add(Calendar.HOUR, -5);
    99. System.out.println("时间比较:" + calendarNew.compareTo(calendar));
    100. // 设定7小时以后,前者大,显示 1
    101. calendarNew.add(Calendar.HOUR, +7);
    102. System.out.println("时间比较:" + calendarNew.compareTo(calendar));
    103. // 退回 2 小时,时间相同,显示 0
    104. calendarNew.add(Calendar.HOUR, -2);
    105. System.out.println("时间比较:" + calendarNew.compareTo(calendar));
    106. }
    107. }
  2. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
  3. /*初始化*/
  4. Calendar cal = Calendar.getInstance();
  5. int year = cal.get(Calendar.YEAR);//年
  6. int month = cal.get(Calendar.MONTH)+1;//月
  7. int day = cal.get(Calendar.DATE);//日
  8. int hour = cal.get(Calendar.HOUR_OF_DAY);//时
  9. int minute = cal.get(Calendar.MINUTE);//分
  10. int second = cal.get(Calendar.SECOND);//秒
  11. int weekday = cal.get(Calendar.DAY_OF_WEEK);//星期   周日-周六对应1-7
  12. int last = cal.getActualMaximum(cal.DAY_OF_MONTH); // 获取本月最大天数
  13. int DAY_OF_YEAR = cal.get(Calendar.DAY_OF_YEAR);//今年的第几天
  14. int DAY_OF_MONTH = cal.get(Calendar.DAY_OF_MONTH);//本月的第几天
  15. System.out.println("现在是: "+year+" 年 "+month+" 月 "+day+
  16. " 日 "+hour+" 时 "+minute+" 分 "+second+" 秒 "+"\nweekday: "+weekday
  17. +" 本月天数 :"+last+" 今年的第几天:"+DAY_OF_YEAR+" 本月第几天:"+DAY_OF_MONTH);
  18. cal.set(2013, 5, 4, 13, 44, 51);//年月日时分秒(月份0代表1月)  ,毫秒不会自动清零
  19. System.out.println(sdf.format(cal.getTime()));
  20. cal.set(Calendar.MILLISECOND, 0);//毫秒清零
  21. System.out.println(sdf.format(cal.getTime()));
  22. cal.set(Calendar.YEAR, 2014);//年
  23. cal.set(Calendar.MONTH, 7);//月(月份0代表1月)
  24. cal.set(Calendar.DATE, 11);//日
  25. cal.set(Calendar.HOUR_OF_DAY, 15);//时
  26. cal.set(Calendar.MINUTE, 33);//分
  27. cal.set(Calendar.SECOND, 32);//秒
  28. System.out.println(sdf.format(cal.getTime()));
  29. cal.setTime(new Date());
  30. System.out.println(sdf.format(cal.getTime()));
  31. cal.add(Calendar.YEAR, 1);//年
  32. cal.add(Calendar.MONTH, 1);//月
  33. cal.add(Calendar.DATE, 1);//日
  34. cal.add(Calendar.HOUR_OF_DAY, -1);//时
  35. cal.add(Calendar.MINUTE, 1);//分
  36. cal.add(Calendar.SECOND, 1);//秒
  37. System.out.println(sdf.format(cal.getTime()));
  38. Calendar calendarNew = Calendar.getInstance();
  39. calendarNew.add(Calendar.HOUR, -2);
  40. System.out.println("时间比较:" + calendarNew.compareTo(cal));

Java Calendar使用总结的更多相关文章

  1. Java Calendar 类的时间操作

    Java Calendar 类的时间操作 标签: javaCalendar时间Date 2013-07-30 17:53 140401人阅读 评论(7) 收藏 举报 分类: 所有(165) Java ...

  2. Java Calendar获取年、月、日、时间

    Java Calendar获取年.月.日.时间 Calendar c = Calendar.getInstance(TimeZone.getTimeZone("GMT+08:00" ...

  3. Java Calendar类使用总结

    平时在浏览一些网站时,有些网站会显示出当前时间,如现在是xx年xx月xx日 xx时xx分xx秒,在实际的开发过程中,也会涉及到日期和时间的计算,Java中提供了一个专门的类Calendar来处理日期与 ...

  4. Java Calendar,Date,DateFormat,TimeZone,Locale等时间相关内容的认知和使用(1) Calendar

    Java 操作日期/时间,往往会涉及到Calendar,Date,DateFormat这些类. 最近决定把这些内容系统的整理一下,这样以后使用的时候,会更得心应手.本章的内容是主要讲解“Java时间框 ...

  5. Java Calendar,Date,DateFormat,TimeZone,Locale等时间相关内容的认知和使用(2) 自己封装的Calendar接口

    本章主要是收藏一些常用的类和接口,包括:万年历(农历.阳历节日.阴历节日).自定义的Calendar接口. 万年历 源码如下(ChineseCalendar.java): package com.vi ...

  6. Java Calendar,Date,DateFormat,TimeZone,Locale等时间相关内容的认知和使用(3) Date

    本章主要介绍Date类,并通过示例学习如何使用它.最后,讲解一下UTC.GMT和时区的关系. Date 介绍 Date 定义 public class Date implements java.io. ...

  7. Java Calendar,Date,DateFormat,TimeZone,Locale等时间相关内容的认知和使用(4) DateFormat

    本章主要介绍DateFormat. DateFormat 介绍 DateFormat 的作用是 格式化并解析“日期/时间”.实际上,它是Date的格式化工具,它能帮助我们格式化Date,进而将Date ...

  8. Java Calendar,Date,DateFormat,TimeZone,Locale等时间相关内容的认知和使用(5) SimpleDateFormat

    本章介绍SimpleDateFormat. SimpleDateFormat 介绍 SimpleDateFormat 是一个格式化Date 以及 解析日期字符串 的工具.它的最常用途是,能够按照指定的 ...

  9. Java Calendar,Date,DateFormat,TimeZone,Locale等时间相关内容的认知和使用(6) Locale

    本章介绍Locale. 1 Locale 介绍 Locale 表示地区.每一个Locale对象都代表了一个特定的地理.政治和文化地区. 在操作 Date, Calendar等表示日期/时间的对象时,经 ...

随机推荐

  1. Jfrog Artifactory jenkins 流水线使用docker的方式培训[暂未成功]

    1. 创建jenkins的流水线 2. 创建artifactory的镜像仓库 3. 创建generic的仓库上传需要的 war包还有tar包. 4. 修改pipeline的 脚本 主要修改的地方. 修 ...

  2. [转帖]GitHub上整理的一些工具

    GitHub上整理的一些工具   技术站点 Hacker News:非常棒的针对编程的链接聚合网站 Programming reddit:同上 MSDN:微软相关的官方技术集中地,主要是文档类 inf ...

  3. Fantacy团队周二站立会议

    词频分析模型 1.这次站会是周二开的,但是由于我个人的疏忽,哎,不说了. 2.会议时间:2016年3月29日12:03~12:30. 持续时长:27分钟 会议参加成员:组长:杨若鹏 http://ww ...

  4. LinkedList 实现 Queue

    package cn.com.example; import java.util.LinkedList; /** * Created by Jack on 2017/3/8. */ public cl ...

  5. C# 8小特性

    对于C# 8,有吸引了大多数注意力的重大特性,如默认接口方法和可空引用,也有许多小特性被考虑在内.本文将介绍几例可能加入C#未来版本的小特性. 新的赋值运算符:&&=和||= 从第一个 ...

  6. BZOJ2553[BeiJing2011]禁忌——AC自动机+概率DP+矩阵乘法

    题目描述 Magic Land上的人们总是提起那个传说:他们的祖先John在那个东方岛屿帮助Koishi与其姐姐Satori最终战平.而后,Koishi恢复了读心的能力…… 如今,在John已经成为传 ...

  7. BZOJ1916[USACO 2010 Open Gold 2.Water Slides]——DP+记忆化搜索

    题目描述 受到秘鲁的马丘比丘的新式水上乐园的启发,Farmer John决定也为奶牛们建 一个水上乐园.当然,它最大的亮点就是新奇巨大的水上冲浪.超级轨道包含 E (1 <= E <=15 ...

  8. POJ3258-River Hopscotch-二分答案

    一条河里有一串石头,给出石头间的间距,让你去掉m个石头,使最短间距最大. 二分答案,对于每一种mid,判断要不要删除这块石头.然后逼近答案. #include <cstdio> #incl ...

  9. BZOJ5338 [TJOI2018] Xor 【可持久化Trie树】【dfs序】

    题目分析: 很无聊的一道题目.首先区间内单点对应异或值的询问容易想到trie树.由于题目在树上进行,case1将路径分成两段,然后dfs的时候顺便可持久化trie树做询问.case2维护dfs序,对d ...

  10. java web项目406错误的解决

    返回的消息头浏览器不能解释 这里我们使用了@ResponseBody,返回数据后缀是,.json,但是我们的映射器后缀又是.html.最后浏览器收到数据不知该以哪种类型数据来进行解析,所以就会报406 ...