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. Mind Manager X 10 registry backup key under windows XP

    Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Mindjet\MindManager\10] [HKEY_CURRE ...

  2. 防止xss攻击。

    function htmlEscape(text){ return text.replace(/[<>&\"=]/g,function(match,pos,origina ...

  3. Qt__文件打开保存对话框(QFileDialog)

    转自豆子空间 使用QFileDialog有两种方法,一种是比较简单的使用"静态函数法",另一种是可以自定义各个细节的"构造函数法". 静态函数法 修改MainW ...

  4. DTW的原理及matlab实现(转载+整理)

    在大部分的学科中,时间序列是数据的一种常见表示形式.对于时间序列处理来说,一个普遍的任务就是比较两个序列的相似性. 在时间序列中,需要比较相似性的两段时间序列的长度可能并不相等,在语音识别领域表现为不 ...

  5. DTD举例一

    DTD举例一: <!--动作库约束文件--> <!DOCTYPE actionGroup [ <!ELEMENT actionGroup (action*)> <! ...

  6. python之文件系统操作(os模块)

    文件系统操作(os模块) import os file_name = "D:\\test_data\\1.txt" file_name_2 = "D:\\test_dat ...

  7. Intel处理器缺货将会持续到2019年第二季度!

    虽然Intel一再承诺加大投资.扩充产能,但一个不争的事实是,Intel处理器仍然都处于大面积紧张的缺货状态中,毕竟10nm迟迟无法规模量产,14nm上拥挤了太多产品线. 按照华硕CEO沈振来的最新说 ...

  8. pgm13

    这部分开始,我们将讨论 learning 相关的内容.PGM 为 frequentist 与 Bayesian 系的 model 提供了同一种语言,对前者来说 learning 就是确定一种对“未知但 ...

  9. AC自动机-HDU2896-模板题

    http://acm.hdu.edu.cn/showproblem.php?pid=2896 另一道AC自动机的模板题,不过这题需要记录一下具体的匹配情况. /*------------------- ...

  10. (转)poj算法做题顺序

    初期: 一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法. (4)递推. (5)构造法.(poj329 ...