zoukankan      html  css  js  c++  java
  • Java 时间类

    一、Date类

    Date:表示特定的瞬间,精确到毫秒
    构造方法:
         (1)public Date():根据当前的默认毫秒值创建日期对象
         (2)public Date(long date):根据给定的毫秒值创建日期对象
    成员方法:
         (1)public long getTime():获取时间,返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
         (2)public long setTime(long time):设置时间,表示 1970 年 1 月 1 日 00:00:00 GMT 以后 time 毫秒的时间点。
                注意:一般的获取时间,我们更常用:System.currentTimeMillis()方法。

    Date类需要掌握的内容
           1、从Date得到一个毫秒值
                getTime()
           2、把一个毫秒值转换成Date
                A:构造方法实现:public Date(long date)
                B:成员方法实现:public long setTime(long time)

    二、DateFormat类

    程序开发中
                                 String ————————>   Date
                   日期控件                     转换                           数据库
                                 Date    ————————>  String
    DateFormat类:日期/时间格式化子类的抽象类,我们使用具体子类:SimpleDateFormat
    成员方法:
          1、格式化:Date ——> String
               public final String format(Date date)
          2、解 析:String ——> Date
               public Date parse(String source)
    DateFormat类的具体实现类:SimpleDateFormat
    SimpleDateFormat类的构造方法
       (1)SimpleDateFormat():默认日期/时间模式
       (2)SimpleDateFormat(String pattern):给定日期/时间模式
               日期/时间模式:
                                  年 y
                                  月 M
                                  日 d
                                  时 H
                                  分 m
                                  秒 s

               Date -- String:格式化
                    // 创建日期对象
                    Date d = new Date();
                    // 创建格式化对象
                    //第一种:默认日期/时间模式
                    SimpleDateFormat sdf = new SimpleDateFormat();
                    public final String format(Date date)
                    String s = sdf.format(d);
                    System.out.println(s);
                    // 第二种:给定日期/时间模式
                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
                    // public final String format(Date date)
                    String s = sdf.format(d);
                    System.out.println(s);
               String -- Date:解析
                    String str = "2016-09-30 19:29:30";
                    //注意:字符串解析为日期的时候,字符串格式必须和给定的字符串格式匹配
                    SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                    Date dd = sdf2.parse(str);
                    System.out.println(dd);

    案例自定义封装,日期和字符串相互转换的工具类
          import java.text.ParseException;
          import java.text.SimpleDateFormat;
          import java.util.Date;

          /**
          * 日期和字符串相互转换的工具类
          * @author
          */
          public class DateUtil {
                private DateUtil() {
                }

                /**
                * 方法的作用:把一个日期对象转成一个字符串
                * @param d 被格式化的日期对象
                * @param format 传递过来的要被转换的格式
                * @return 格式化后的字符串
                */
                public static String dateToString(Date d, String format) {
                      // SimpleDateFormat sdf = new SimpleDateFormat(format);
                      // return sdf.format(d);
                      return new SimpleDateFormat(format).format(d);
                }

                 /**
                 * 方法的作用:把一个字符串解析成一个日期对象
                 * @param s 被解析的字符串
                 * @param format 传递过来的要被转换的格式
                 * @return 解析后的日期对象
                 * @throws ParseException
                 */
                 public static Date stringToDate(String s, String format) throws ParseException {
                       return new SimpleDateFormat(format).parse(s);
                 }
            }

    三、Calender类

    Calendar类:一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(如:获得下星期的日期)提供了一些方法。
    日历字段:
        (1)public static final int YEAR:指示年的 get 和 set 的字段数字,指示年。
        (2)public static final int MONTH:指示月份的 get 和 set 的字段数字,指示一年中的月。
        (3)public static final int DATE:get 和 set 的字段数字,指示一个月中的某天。
        (4)public static final int HOUR_OF_DAY:get 和 set 的字段数字,指示一天中的小时。
        (5)public static final int MINUTE:get 和 set 的字段数字,指示一小时中的分钟。
        (6)public static final int SECOND:get 和 set 的字段数字,指示一分钟中的秒。
        (7)public static final int DAY_OF_YEAR:get 和 set 的字段数字,指示当前年中的天数。
        (8)public static final int DAY_OF_MONTH:get 和 set 的字段数字,指示一个月中的某天。
        (9)public static final int DAY_OF_WEEK:get 和 set 的字段数字,指示一个星期中的某天。该字段可取的值为 SUNDAY、MONDAY、TUESDAY、WEDNESDAY、THURSDAY、FRIDAY 和 SATURDAY。

    常用方法:

        (1)public static Calendar getInstance():使用默认时区和语言环境获得一个日历
               如:Calendar rightNow = Calendar.getInstance();
        (2)public int get(int field):返回给定日历字段的值。日历类中的每个日历字段都是静态的成员变量,并且是int类型。
               // 获取年
               int year = rightNow.get(Calendar.YEAR);
               // 获取月
               int month = rightNow.get(Calendar.MONTH);
               // 获取日
               int date = rightNow.get(Calendar.DATE);
               System.out.println(year + "年" + (month + 1) + "月" + date + "日");
        (3)public void add(int field,int amount):根据给定的日历字段和对应的时间,来对当前的日历进行操作。
               // 5年后的10天前
               c.add(Calendar.YEAR, 5);
               c.add(Calendar.DATE, -10);
        (4)public final void set(int year,int month,int date):设置当前日历的年月日
               c.set(2016, 10, 30);//注意:月是从0开始计数
    案例获取任意一年的二月有多少天
          分析:
                 A:键盘录入任意的年份
                 B:设置日历对象的年月日
                    年:A录入的数据
                    月:2
                    日:1
                C:把时间往前推一天,就是2月的最后一天
                D:获取这一天输出
          代码实现:
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入年份:");
                int year = sc.nextInt();
                Calendar c = Calendar.getInstance();
                c.set(year, 2, 1);
                c.add(Calendar.DATE, -1);
                System.out.println(c.get(Calendar.DATE));

    拓展public static Calendar getInstance()方法设计思想扩展
           这种方法的思想:
                 abstract class Person {
                       public static Person getPerson() {
                             return new Student();
                       }
                 }
                 class Student extends Person {
                 }

  • 相关阅读:
    php 将富文本编辑后的内容取出
    阿里云Windows远程连接出现身份验证错误,要求的函数不正确”的报错。
    composer切换中国镜像
    php获取当月天数及当月第一天及最后一天、上月第一天及最后一天实现方法
    golang ioutil 包源码阅读
    ssh 远程登录 REMOTE HOST IDENTIFICATION HAS CHANGED 问题
    Golang -- fallthrough
    Golang 执行 go run main.go 显示 undefined
    Golang Playground 进度条示例
    关系型数据库和非关系型数据库(NOSQL)
  • 原文地址:https://www.cnblogs.com/zfsky/p/5965695.html
Copyright © 2011-2022 走看看