分享

java常用类解析十:Date类和Calendar类示例

 大梦吾觉 2015-03-02

1、Date类实例:格式化输出当前日期

  1. <span style="font-size:16px;">package demo.others;
  2. import java.text.Format;
  3. import java.text.SimpleDateFormat;
  4. import java.util.Date;
  5. public class DateDemo {
  6. public static void main(String[] args) {
  7. Date d = new Date();
  8. //输出格式:dow mon dd hh:mm:ss zzz yyyy
  9. //表示 :星期 月 日期 时 分 秒 时区 年
  10. System.out.println(d);
  11. //Format 是一个用于格式化语言环境敏感的信息(如日期、消息和数字)的抽象基类。
  12. Format format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss ");
  13. System.out.println(format.format(d));
  14. }
  15. }
  16. </span>

2、Calendar及GregorianCalendar类实例:获取当前日期、打印当前月份日历、计算两个日期之间相差的天数

  1. <span style="font-size:16px;">package demo.others;
  2. import java.util.Calendar;
  3. import java.util.Date;
  4. import java.util.GregorianCalendar;
  5. /*
  6. * 日历类简单例子,Calendar类不稳定,有延时性和容错性
  7. */
  8. public class CalendarDemo {
  9. public static void main(String[] args) {
  10. simpleDemo();
  11. showCalendar();
  12. numberOfDays();
  13. }
  14. // Calendar常用方法示例
  15. public static void simpleDemo() {
  16. //当前日期
  17. Calendar c = new GregorianCalendar();
  18. //c.setTime(new Date());
  19. StringBuilder str = new StringBuilder();
  20. //获取当前日期的信息
  21. str.append("year:" + c.get(Calendar.YEAR));
  22. str.append(" month:" + (c.get(Calendar.MONTH) + 1));
  23. str.append(" day:" + c.get(Calendar.DAY_OF_MONTH));
  24. str.append(" week:" + (c.get(Calendar.DAY_OF_WEEK) - 1));
  25. str.append(" hour:" + c.get(Calendar.HOUR_OF_DAY));
  26. str.append(" minute:" + c.get(Calendar.MINUTE));
  27. str.append(" second:" + c.get(Calendar.SECOND));
  28. System.out.println(str);
  29. // 转换成Date对象
  30. Date d = Calendar.getInstance().getTime();
  31. System.out.println(d);
  32. }
  33. // 输出当前月的日历
  34. public static void showCalendar() {
  35. // 获得当前时间
  36. Calendar c = Calendar.getInstance();
  37. // 设置代表的日期为1号
  38. c.set(Calendar.DATE, 1);
  39. // 获得1号是星期几
  40. int start = c.get(Calendar.DAY_OF_WEEK);
  41. // 获得当前月的最大日期数
  42. int maxDay = c.getActualMaximum(Calendar.DATE);
  43. // 输出标题
  44. System.out.println("星期日 星期一 星期二 星期三 星期四 星期五 星期六");
  45. // 输出开始的空格
  46. for (int i = 1; i < start; i++) {
  47. System.out.print(" ");
  48. }
  49. // 输出该月中的所有日期
  50. for (int i = 1; i <= maxDay; i++) {
  51. // 输出日期数字
  52. System.out.print(" " + i);
  53. // 输出分隔空格
  54. System.out.print(" ");
  55. if (i < 10) {
  56. System.out.print(' ');
  57. }
  58. // 判断是否换行
  59. if ((start + i - 1) % 7 == 0) {
  60. System.out.println();
  61. }
  62. }
  63. // 换行
  64. System.out.println();
  65. }
  66. // 计算两个日期之间相差的天数
  67. public static void numberOfDays() {
  68. // 设置两个日期
  69. // 日期:2009年3月11号
  70. Calendar c1 = Calendar.getInstance();
  71. c1.set(2009, 3 - 1, 11);
  72. // 日期:2010年4月1号
  73. Calendar c2 = Calendar.getInstance();
  74. c2.set(2010, 4 - 1, 1);
  75. // 转换为相对时间
  76. long t1 = c1.getTimeInMillis();
  77. long t2 = c2.getTimeInMillis();
  78. // 计算天数
  79. long days = (t2 - t1) / (24 * 60 * 60 * 1000);
  80. System.out.println(days);
  81. }
  82. }
  83. </span>

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多