java JDK7 Date

发布时间 2023-12-06 21:34:56作者: _Elaina

package net.elaina.Date01;

import java.util.Date;
import java.util.Random;

public class Test02 {
    public static void main(String[] args) {
        /*需求1:打印时间原点开始一年之后的时间
        需求2:定义任意两个Date对象,比较一下哪个时间在前,哪个时间在后*/

        // 需求2:定义任意两个Date对象,比较一下哪个时间在前,哪个时间在后
        Random r = new Random();

        //创建两个时间对象
        Date d1 = new Date(Math.abs(r.nextInt()));
        Date d2 = new Date(Math.abs(r.nextInt()));

        long time1 = d1.getTime();
        long time2 = d2.getTime();

        if(time1 > time2) {
            System.out.println("第一个时间在后面,第二个时间在前面");
        }else if(time1 < time2) {
            System.out.println("第二个时间在后面,第一个时间在前面");
        }else {
            System.out.println("表示两个世界一样");
        }

        System.out.println(d1);
        System.out.println(d2);

    }

    private static void extracted() {
        //1.打印时间原点开始一年之后的时间
        Date d1 = new Date(0L);

        //2.获取d1时间的毫秒值
        long time = d1.getTime();

        //3.在这个基础上我们要加一年的毫秒值即可
        time = time + 1000L * 60 * 60 * 24 * 365;

        //4.把计算之后的时间毫秒值,再设置回d1当中
        d1.setTime(time);

        System.out.println(d1);
    }
}

package net.elaina.Date01;

import java.util.Date;

public class Test01 {
    public static void main(String[] args) {
      /*public Date()                     创建Date对象,表示当前时间
        public Date(long date)              创建Date对象,表示指定时间
        public void setTime(long time)      设置/修改毫秒值
        public long getTime()               获取时间对象的毫秒值*/

        //1.创建对象表示一个时间
        Date d1 = new Date();
        //System.out.println(d1);

        //2.创建对象表示一个指定的时间
        Date d2 = new Date(0L);
        //System.out.println(d2);

        //3.setTime修改时问
        d2.setTime(1000L);
        //System.out.println(d2);

        //4.getTime获取当前时间的毫秒值
        long time = d2.getTime();
        System.out.println(time);


    }
}

package net.elaina.Date02;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Test01 {
    public static void main(String[] args) throws ParseException {
      /*  public SimpleDateFormat()                   默认格式
        public SimpleDateFormat(String pattern)     指定格式

        public final String format(Date date)       格式化(日期对象->字符串)
        public Date parse(String source)            解析(字符串 ->日期对象)*/


        //1.定义一个字符串表示时间
        String str = "2023-11-11 11:11:11";
        //2.利用空参构造创建SimpleDateFormat对象
        //细节:
        //创建对象的格式要跟字符串的格式完全一致
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date = sdf.parse(str);
        System.out.println(date.getTime());

    }

    private static void method() {
        //1.利用空参构造创建SimpleDateFormat对象,默认格式
        SimpleDateFormat sdf1 = new SimpleDateFormat();
        Date d1 = new Date(0L);
        String str1 = sdf1.format(d1);
        System.out.println(str1);  //1970/1/1 08:00

        //2.利用带参构造创建SimpleDateFormat对象,指定格式
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss E");
        String str2 = sdf2.format(d1);
        System.out.println(str2); //1970年01月01日 08:00:00 周四
    }
}

package net.elaina.Calendar;

import java.util.Calendar;
import java.util.Date;

public class Test01 {
    public static void main(String[] args) {
       /* public static Calendar getInstance()        获取当前时间的日历对象
        public final Date getTime()                 获取日期对象
        public final setTime(Date date)             给日历设置日期对象
        public long getTimeInMillis()               拿到时间毫秒值
        public void setTimeInMillis(long millis)    给日历设置时间毫秒值
        public int get(int field)                   取日期中的某个字段信息
        public void set(int field,int value)        修改日历的某个字段信息
        public void add(int field,int amount)       为某个字段增加/减少指定的值*/

        //1.获取日历对象
        //细节1:Calendar是一个抽象类,不能直接new,而是通过一个静态方法获取到子类对象
        //底层原理:
        //会根据系统的不同时区来获取不同的日历对象,默认表示当前时间。
        //把会把时间中的纪元,年,月,日,时,分,秒,星期,等等的都放到一个数组当中
        //0:纪元
        //1 :年
        //2 :月
        //3 :一年中的第几周
        //4 :一个月中的第几周
        //5:一个月中的第几天(日期)

        //细节2:
        //月份:范围0~11如果获取出来的是0.那么实际上是1月。
        //星期:在老外的眼里,星期日是一周中的第一天
        //1(星期日)2(星期一)3(星期二)4(星期三)5(星期四) 6(星期五)7(星期六)
        Calendar c = Calendar.getInstance();

        //2.修改一下日历代表的时间
        Date d = new Date(0L);
        c.setTime(d);

        System.out.println(c);

        /*public int get(int field)                   取日期中的某个字段信息
        public void set(int field,int value)        修改日历的某个字段信息
        public void add(int field,int amount)       为某个字段增加/减少指定的值*/
        c.set(Calendar.YEAR,2023);
        c.set(Calendar.MONTH,8);
        c.set(Calendar.DAY_OF_MONTH,10);
        //调用方法在这个基础上增加一个月
        c.add(Calendar.MONTH,1);

        int year = c.get(Calendar.YEAR);
        int month = c.get(Calendar.MONTH) + 1;
        int date = c.get(Calendar.DATE);
        int week = c.get(Calendar.DAY_OF_WEEK);

        System.out.println(year + ", " + month + ", " + date + ", " + getWeek(week)); //1970, 1, 1

    }

    //传入对应的数字:1~7
    //返回对应的星期
    public static String getWeek(int index) {
        //定义一个数组,让汉字星期几跟1~7产失对应关系
        String[] arr = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
        //根据索引返回对应的星期
        return arr[index];
    }
}