欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Data、Calendar要不要了解一下

程序员文章站 2022-04-15 18:32:32
Date在Java中,有一个类叫做Date(java.util.Date), 这个类叫做日期类,但是Java中的Date类表示的是特定的时间瞬间, 精确到了毫秒。构造方法:Date():使用空参构造方法创建的Date对象会以当前操作系统的时间构建一个Date。Date(long date):参数要传递一个long类型的毫秒值。 表示从1970年1月1日 0点0分0秒开始过了多少毫秒。中国使用的是北京时间,北京时间是东八区,比标准时间快八个小时。 时间是从1970年1月1日 8点0分0秒开始的。...

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);
    }
}

本文地址:https://blog.csdn.net/weixin_44882647/article/details/109564340

相关标签: 笔记