DataCalendar要不要了解一下

Posted javaurl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DataCalendar要不要了解一下相关的知识,希望对你有一定的参考价值。

Date

在Java中,有一个类叫做Date(java.util.Date), 这个类叫做日期类,但是Java中的Date类表示的是特定的时间瞬间, 精确到了毫秒。

构造方法:

  1. Date():使用空参构造方法创建的Date对象会以当前操作系统的时间构建一个Date。
  2. Date(long date):参数要传递一个long类型的毫秒值。 表示从1970年1月1日 0点0分0秒开始过了多少毫秒。
  3. 中国使用的是北京时间,北京时间是东八区,比标准时间快八个小时。 时间是从1970年1月1日 8点0分0秒开始的。

getTime方法

在Date类中,有一个方法叫做getTime,可以获取Date对象对应的毫秒值。

long getTime(): 获取Date对象表示的毫秒并返回。

使用方法 data的对象名.getTime();用long 类型接收

setTime方法

在Date类中,有一个方法叫做setTime,可以设置Date对象的毫秒值。

void setTime(long time):设置Date对象表示的时间(毫秒值)。 调用此方法后,Date对象表示的时间会发生改变。

使用方法 data的对象名.setTime();

DateFormat

format

/*
    如果想要把一个Date对象转成一个指定格式的字符串,那么可以使用DateFormat类去实现。
    DateFormat是一个抽象类,如果要用,需要使用子类SimpleDateFormat

    构造方法:
        SimpleDateFormat(String pattern): 参数需要传递一个字符串类型的模式。

    举例:
        要转成的格式: 2019年03月22日 10时17分54秒
        对应的模式:   yyyy年MM月dd日 HH时mm分ss秒
        就是使用英语字母替换掉数字。
        y:年
        M:月
        d:日
        H:时
        m:分
        s:秒

    其他的方法:
        String format(Date date) :将参数Date对象格式化为一个字符串。并把这个字符串返回。

    日期格式化的步骤:
        1. 创建一个Date对象。
        2. 创建一个SimpleDateFormat对象,在构造方法中给出指定的模式。
        3. 调用SimpleDateFormat对象的format方法,将Date对象转成一个字符串。
 */
public class Demo {
    public static void main(String[] args) {
        //创建一个Date对象
        Date date = new Date();
        //2. 创建一个SimpleDateFormat对象,在构造方法中给出指定的模式。
        //要转成的日期格式为:  2019年03月22日 10时17分54秒
        //SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
        //要转成的日期格式为: 2019-03-22 10:17:54
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

        //3. 调用SimpleDateFormat对象的format方法,将Date对象转成一个字符串。
        String str = sdf.format(date);
        System.out.println("str:" + str);
    }
}

parse方法

/*
    如果要把一个字符串转成一个Date对象,那么我们可以使用SimpleDateFormat去完成。
    使用的方法:
        Date parse(String source):将字符串转成(解析)一个Date对象并返回

    使用步骤:
        1. 定义一个字符串,表示时间。
        2. 创建一个SimpleDateFormat对象, 参数位置指定一个模式。
        3. 调用SimpleDateFormat的parse方法,将字符串转成一个Date对象。

    注意:
        1. 调用parse方法后需要抛异常。
           解决方式: 把光标移动到红色波浪线上面,然后按alt + 回车,选择第一个。
        2. SimpleDateFormat构造方法中传递的模式必须和要转换的字符串格式一致。否则会报错。

    小结:
        Date->String:格式化。 使用SimpleDateFormat的format方法去完成。
        String->Date:解析。 使用SimpleDateFormat的parse方法去完成。
 */
public class Demo {
    public static void main(String[] args) throws ParseException {
        //1. 定义一个字符串,表示时间。
        String str = "2019-03-22 10:27:13";
        //2. 创建一个SimpleDateFormat对象, 参数位置指定一个模式。
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
        //3. 调用SimpleDateFormat的parse方法,将字符串转成一个Date对象。
        Date date = sdf.parse(str);
        //4. 输出date对象
        System.out.println(date);
    }
}

Calendar

getInstance方法

/*
    在Date类中有很多方法都已经过时了,原因是因为在Calendar中有了更好的方法可以代替他们。

    Calendar叫做日历类。 和Date一样,Calendar也可以表示精确的时间瞬间(精确到毫秒)

    Calendar是一个抽象类, 如果要用,需要使用它的子类。
    因为地区敏感性, Calendar的子类对象不能由我们自己去new,而是要调用Calendar的静态方法			getInstance进行获取。

    Calendar中的方法:
        static Calendar getInstance(): 获取一个Calendar子类对象, 然后把这个子类对象返回了。

    获取Calendar对象的方式:
        之前都是通过new的方式获取一个对象,而此时是通过Calendar的静态方法getInstance获取的			Calendar对象(真正是Calendar子类对象)
 */
public class Demo {
    public static void main(String[] args) {
        //通过Calendar的静态方法获取一个日历对象
        Calendar c = Calendar.getInstance();
        //进行输出
        System.out.println(c);
    }
}

get方法

/*
    在Calendar中,有一个方法叫做get,可以获取到指定字段的值:
        int get(int field): 参数field表示要获取哪个字段的值。
    举例:
        get(年): 获取年这个字段的值。
        get(月): 获取月这个字段的值
        get(日): 获取日这个字段的值。

    get方法参数是int类型, 所以我们要使用数字表示对应的字段。
    如果在get方法中传递数字的话,会大大的影响我们程序的可阅读性。
    我们可以使用Calendar中的静态常量代替这些数字, 这些常量的常量名具有见名之意的效果, 每一个常量都表示一个数字。

    注意:
        Calendar中的月份是从0开始的范围是(0-11)。 Calendar中的月份比现实生活要少1
 */
public class Demo {
    public static void main(String[] args) {
        //获取一个日历对象
        Calendar c = Calendar.getInstance();
        //获取年的值进行输出
        int year = c.get(Calendar.YEAR);
        System.out.println(year);
        //获取月的值进行输出
        int month = c.get(Calendar.MONTH) + 1;
        System.out.println(month);
        //获取日的值进行输出
        int day = c.get(Calendar.DATE);
        System.out.println(day); 
    }
}

set方法

/*
    在Calendar中有一个方法叫做set,可以给指定字段设置值。
        void set(int field, int value): 可以给指定字段设置值。
            参数field:表示要给哪个字段设置值。
            参数value:表示要设置成什么值。
 */
public class Demo {
    public static void main(String[] args) {
        //获取一个日历对象
        Calendar c = Calendar.getInstance();
        //输出这个日历对象的年月日的值
        System.out.println(c.get(Calendar.YEAR) + "-" + (c.get(Calendar.MONTH) + 1) + "-" + c.get(Calendar.DATE));
        //使用set方法,给日历对象重新设置值
        c.set(Calendar.YEAR, 2012);
        c.set(Calendar.MONTH, 4); //表示的是现实生活中的5月
        c.set(Calendar.DATE, 11);
        //重写输出这个日历对象的年月日的值。
        System.out.println(c.get(Calendar.YEAR) + "-" + (c.get(Calendar.MONTH) + 1) + "-" + c.get(Calendar.DATE));

    }
}

add方法

/*
    在Calendar中,有一个方法叫做add,可以对指定字段的值进行计算。
        void add(int field, int amount): 可以对指定字段的值进行计算。
            参数field: 表示要对哪个字段进行计算。
            参数amount: 表示如何计算。 如果该参数是正数,那么就是加上该值。
                                      如果该参数是负数,那么就是减去该值。
 */
public class Demo {
    public static void main(String[] args) {
        //获取一个日历对象
        Calendar c = Calendar.getInstance();
        //输出该日历对象的年月日的值。
        System.out.println(c.get(Calendar.YEAR) + "-" + (c.get(Calendar.MONTH) + 1) + 		  "-" + c.get(Calendar.DATE));
        //使用add方法,对年进行计算, 加上2年
        //c.add(Calendar.YEAR, 2);
        //使用add方法对月进行计算
        c.add(Calendar.MONTH, 10);
        //重新输出
        System.out.println(c.get(Calendar.YEAR) + "-" + (c.get(Calendar.MONTH) + 1) + 		  "-" + c.get(Calendar.DATE));

    }
}

getTime方法

/*
    在Calendar中有一个方法叫做getTime,可以获取到Calendar对应的Date对象
        Date getTime(): 获取Calendar对应的Date对象
 */

        //获取一个日历对象
        Calendar c = Calendar.getInstance();
        //将这个日历对象转成一个Date对象。
        Date date = c.getTime();

currentTimeMillis

/*
   static long currentTimeMillis():获取当前操作系统的时间(以毫秒值表示的)
 */
public class Demo {
    public static void main(String[] args) {
        //调用System的currentTimeMillis获取当前的时间
        long millis = System.currentTimeMillis();
        System.out.println(millis);
    }
}

以上是关于DataCalendar要不要了解一下的主要内容,如果未能解决你的问题,请参考以下文章

Workflow,要不要了解一下

使用XHR上传文件要不要了解一下?

有人了解CVTE的实习考核周吗?在纠结要不要去

开发到底要不要转行软件测试?

作为一个前端开发到底要不要写测试?

究竟要不要写代码注释?