• java基础:6.4 日期类、日历类


    1.日期

    1. 用到的是: date() 得到当前时间信息 Date d1 = new Date();,使用时需要引用类 java.util.Date;

      Java中的时间原点,其对应的日期是1970年1月1日 8点0分0秒 。 (为什么是8点,因为中国的太平洋时区是UTC-8,刚好和格林威治时间差8个小时)

      为什么对应1970年呢? 因为1969年发布了第一个 UNIX 版本:AT&T,综合考虑,当时就把1970年当做了时间原点。每过1毫秒+1。

    2. getTime() 得到一个long型的整数,距离时间原点经过的总毫秒数。

      从1970.1.1 08:00:00:000 开始,每经历一毫秒,增加1。
      System.out.println(d1.getTime()); //1552544316665

      这种方法得到的值很不直观对吧,"1552544316665"这结果没啥有效信息啊。所以,推荐采用0构造法,得到一个1970.1.1 08:00的标准格式的时间。
      Date zero = new Date(0);
      System.out.println(“用0作为构造方法,得到的日期是:”+zero);

    3. System.currentTimeMillis() 距离时间原点经过的总毫秒数。
      new Date().getTime() 是一样的,但执行程序的机器不同、性能可能不同,时间会存在差异。

    4. 格式化日期格式输出 SimpleDateFormat,属于类java.text.SimpleDateFormat;
      创建对象时()中的格式不同,得到的显示也不同。下图是eclipse给出的阳历

      结果以数字显示的 :y-m-d H:m:ss SS 分别代表 年 月 日 时 分 秒 毫秒
      结果以字母显示的 E = 星期x , MMM = x月 , a = pm/下午 ,

    		SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS" );
            Date d= new Date();
            String str = sdf.format(d);
            System.out.println(str);  // 2019-10-14 15:10:45 952
    

     
     

    2. 日历类

    . 为 Calendar类,属于java.util.Calendar;

          Calendar c = Calendar.getInstance();
          Date now = c.getTime();  // 获取时间
          System.out.println("now is " + now);   // now is Thu Mar 14 16:30:28 CST 2019
          Date d3 = new Date(0);
          c.setTime(d3);  // 重新设置时间
    

    . 翻日历操作

           public static void main(String[] args) {
          Calendar c = Calendar.getInstance();
          Date now = c.getTime();
          // 当前日期
          System.out.println("当前日期:	" + format(c.getTime()));
    
          // 下个月的今天
          c.setTime(now);
          c.add(Calendar.MONTH, 1);
          System.out.println("下个月的今天:	" +format(c.getTime()));
    
          // 去年的今天
          c.setTime(now);
          c.add(Calendar.YEAR, -1);
          System.out.println("去年的今天:	" +format(c.getTime()));
    
          // 上个月的第三天
          c.setTime(now);
          c.add(Calendar.MONTH, -1);
          c.set(Calendar.DATE, 3);
          System.out.println("上个月的第三天:	" +format(c.getTime()));
    
      }
    
      private static String format(Date time) {
          return sdf.format(time);
      }
      ```
    
  • 相关阅读:
    数字加密
    大道至简第四章读后感
    输出类中的对象个数
    大道至简第三章读后感
    02java语法基础问题总结
    从命令行接收多个数字并求和输出
    软件工程个人作业03
    第四周学习进度条
    软件工程概论-课后作业2(单元测试)
    第三周学习进度
  • 原文地址:https://www.cnblogs.com/l20902/p/10610890.html
Copyright © 2020-2023  润新知