Java Calendar使用总结

摘要:
JavaCalendar类时间操作,这也许是创建和管理日历最简单的一个方案,示范代码很简单。演示了获取时间,日期时间的累加和累减,以及比较。
  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 的格式定义

    LetterDate or Time ComponentPresentationExamples
    GEra designatorTextAD
    yYearYear1996;96
    YWeek yearYear2009;09
    MMonth in year (context sensitive)MonthJuly;Jul;07
    LMonth in year (standalone form)MonthJuly;Jul;07
    wWeek in yearNumber27
    WWeek in monthNumber2
    DDay in yearNumber189
    dDay in monthNumber10
    FDay of week in monthNumber2
    EDay name in weekTextTuesday;Tue
    uDay number of week (1 = Monday, ..., 7 = Sunday)Number1
    aAm/pm markerTextPM
    HHour in day (0-23)Number0
    kHour in day (1-24)Number24
    KHour in am/pm (0-11)Number0
    hHour in am/pm (1-12)Number12
    mMinute in hourNumber30
    sSecond in minuteNumber55
    SMillisecondNumber978
    zTime zoneGeneral time zonePacific Standard Time;PST;GMT-08:00
    ZTime zoneRFC 822 time zone-0800
    XTime zoneISO 8601 time zone-08;-0800;-08:00


    JavaCalendar 演示代码如下:

    1. packagedemo;
    2. importjava.util.Date;
    3. importjava.text.SimpleDateFormat;
    4. importjava.text.DateFormat;
    5. importjava.text.ParseException;
    6. importjava.util.Calendar;
    7. publicclassTest
    8. {
    9. publicTest()
    10. {
    11. }
    12. publicstaticvoidmain(String[]args)
    13. {
    14. //字符串转换日期格式
    15. //DateFormatfmtDateTime=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");
    16. //接收传入参数
    17. //StringstrDate=args[1];
    18. //得到日期格式对象
    19. //Datedate=fmtDateTime.parse(strDate);
    20. //完整显示今天日期时间
    21. Stringstr=(newSimpleDateFormat("yyyy-MM-ddHH:mm:ss:SSS")).format(newDate());
    22. System.out.println(str);
    23. //创建Calendar对象
    24. Calendarcalendar=Calendar.getInstance();
    25. try
    26. {
    27. //对calendar设置时间的方法
    28. //设置传入的时间格式
    29. SimpleDateFormatdateFormat=newSimpleDateFormat("yyyy-M-dH:m:s");
    30. //指定一个日期
    31. Datedate=dateFormat.parse("2013-6-113:24:16");
    32. //对calendar设置为date所定的日期
    33. calendar.setTime(date);
    34. //按特定格式显示刚设置的时间
    35. str=(newSimpleDateFormat("yyyy-MM-ddHH:mm:ss:SSS")).format(calendar.getTime());
    36. System.out.println(str);
    37. }
    38. catch(ParseExceptione)
    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=(newSimpleDateFormat("yyyy-MM-ddHH: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(newDate());
    53. //setTime类似上面一行
    54. //Datedate=newDate();
    55. //calendar.setTime(date);
    56. str=(newSimpleDateFormat("yyyy-MM-ddHH:mm:ss:SSS")).format(calendar.getTime());
    57. System.out.println(str);
    58. //显示年份
    59. intyear=calendar.get(Calendar.YEAR);
    60. System.out.println("yearis="+String.valueOf(year));
    61. //显示月份(从0开始,实际显示要加一)
    62. intmonth=calendar.get(Calendar.MONTH);
    63. System.out.println("nthis="+(month+1));
    64. //本周几
    65. intweek=calendar.get(Calendar.DAY_OF_WEEK);
    66. System.out.println("weekis="+week);
    67. //今年的第N天
    68. intDAY_OF_YEAR=calendar.get(Calendar.DAY_OF_YEAR);
    69. System.out.println("DAY_OF_YEARis="+DAY_OF_YEAR);
    70. //本月第N天
    71. intDAY_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. intHOUR_OF_DAY=calendar.get(Calendar.HOUR_OF_DAY);
    76. System.out.println("HOUR_OF_DAY+3="+HOUR_OF_DAY);
    77. //当前分钟数
    78. intMINUTE=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=(newSimpleDateFormat("yyyy-MM-ddHH:mm:ss:SS")).format(calendar.getTime());
    90. System.out.println(str);
    91. //重置Calendar显示当前时间
    92. calendar.setTime(newDate());
    93. str=(newSimpleDateFormat("yyyy-MM-ddHH:mm:ss:SS")).format(calendar.getTime());
    94. System.out.println(str);
    95. //创建一个Calendar用于比较时间
    96. CalendarcalendarNew=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. SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss:SSS");
  3. /*初始化*/
  4. Calendarcal=Calendar.getInstance();
  5. intyear=cal.get(Calendar.YEAR);//年
  6. intmonth=cal.get(Calendar.MONTH)+1;//月
  7. intday=cal.get(Calendar.DATE);//日
  8. inthour=cal.get(Calendar.HOUR_OF_DAY);//时
  9. intminute=cal.get(Calendar.MINUTE);//分
  10. intsecond=cal.get(Calendar.SECOND);//秒
  11. intweekday=cal.get(Calendar.DAY_OF_WEEK);//星期周日-周六对应1-7
  12. intlast=cal.getActualMaximum(cal.DAY_OF_MONTH);//获取本月最大天数
  13. intDAY_OF_YEAR=cal.get(Calendar.DAY_OF_YEAR);//今年的第几天
  14. intDAY_OF_MONTH=cal.get(Calendar.DAY_OF_MONTH);//本月的第几天
  15. System.out.println("现在是:"+year+"年"+month+"月"+day+
  16. "日"+hour+"时"+minute+"分"+second+"秒"+" weekday:"+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(newDate());
  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. CalendarcalendarNew=Calendar.getInstance();
  39. calendarNew.add(Calendar.HOUR,-2);
  40. System.out.println("时间比较:"+calendarNew.compareTo(cal));

免责声明:文章转载自《Java Calendar使用总结》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Entity Framework执行Sql语句返回DataTable例题下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

R包的安装 卸载 加载 移除等

R包的安装1)有四个窗口用于使用R studio手动安装R studio,所有安装的R包将显示在右下角窗口中的包下。单击安装-˃输入R包名称-˃单击安装。2) 使用命令安装安装。packagesR包,请卸载删除。packagesR包,加载libraryR包,删除...

嵌入式linux GUI--DirectFB + GTK至尊秘笈

我开始在x86上构建GTK环境。首先,我选择了最新版本。然后,我看到了GTK在帧缓冲区上以两种模式运行的介绍:DirectFB和linuxfb,而Linuxfb项目似乎已经停止。主要方向是DirectFB。后来,我找到了一个DirectFB+GTK的英文文档,它基本上使用了最新版本。许多软件包可以使用系统自己的,因此您可以编译必要的源代码。一开始,编译并不成...

LaTex学习笔记(1)——LaTeX文档插入图片的几种常用方法

2,插入bmp图片还没有找到直接插入bmp图片的方法。用gimp或fastoneimageviewer,将jpg质量选为最高,转换之后得到的图片质量较好。3,同时插入jpg和eps图片插入的命令不变。编译时使用Latex,dvi2pdf,两种格式的图片都可以显示。...

PCL点云分割(2)

点云的分割是我想做的机器人手臂捕捉的一个非常重要的部分,因此首先要了解,如果我使用点云库来处理我用kinect获得的点云数据,这个例程也是由我自己慢慢修改程序并结合官方API的解释来实现的。如果我直接更改源程序,由于数据类型、头文件和其他原因,其中的许多细节可能无法编译,我们将很难找出错误。首先,让我们看看我自己设定的场景。然后我使用Kinect获取数据并观...

10 TCP限流技术

TCP流限制的原因是接收方可以完全接受消息,以确保数据安全而不会丢失。首先,窗口机制引入了发送方和接收方都有一个窗口。当发送方发送数据时,将发送落入窗口中的数据。当接收器接收到数据时,落入接收器窗口的数据将被接受。可以看出,流量会受到窗口大小II的限制。滑动窗口技术1TCP滑动窗口技术通过动态改变窗口大小来调整两台主机之间的数据传输。...

【工具技巧】:sublime notepad++ 多行编辑

将光标定位到一行-˃ctrl+shift+↑↓, 上下移动一行。选择-˃ctrl+shift后+↑↓, 上下移动所选区域。再次按6:Ctrl+Shift+Enter在光标前插入一行。...