Conceptos básicos de Java: JDK7-Hora Fecha

Clases relacionadas con el tiempo antes de JDK7

1. Fecha

Date date = new Date(); , sout(date) obtiene la hora en la ubicación actual

Date date = new Date(0L); , sout(date) obtiene el origen de la hora, que es a las 08:00 del 1 de enero de 1970 (East Eighth District).

date.setTime(1000L); sout(fecha) obtiene la hora un segundo después del origen del tiempo

long time = date.getTime(); sout(date) obtiene el número de milisegundos desde el origen de la hora de la fecha.

1.1 Resumen

2.Formato de fecha simple

2.1 Función

 2.2 Métodos de construcción y métodos de miembros

 

// 此时此刻的时间
        Date date = new Date();
        // 时间原点的时间
        Date date1 = new Date(0L);
        System.out.println(date);// Wed Mar 01 10:48:59 CST 2023

        // 时间原点之后1秒的时间
        date.setTime(1000L);
        System.out.println(date);// Thu Jan 01 08:00:01 CST 1970

        // 获取date的时间距离原点时间的毫秒值
        long time = date.getTime();
        System.out.println(time);// 1000

        // 需求一:时间原点一年后的时间
        date.setTime(365 * 24 * 60 * 60 * 1000L);
        System.out.println(date);// Fri Jan 01 08:00:00 CST 1971

        // 需求二:比较两个Date对象哪个在前哪个在后
        Date date2 = new Date(100L);
        Date date3 = new Date(1000L);

        long time2 = date2.getTime();
        long time3 = date3.getTime();

        long max = Math.max(time2, time3);
        System.out.println(max);

        // simpledateformat
        // 空参构造是默认格式
        SimpleDateFormat sdf = new SimpleDateFormat();
        // 格式化(需要Date对象, 输出默认格式的时间字符串)
        Date date4 = new Date(1000000000000L);
        String format = sdf.format(date4);
        System.out.println(format);// 2001/9/9 上午9:46

        // 有参构造(设置格式Pattern)
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM/dd  HH/mm-ss EE");
        // 格式化(需要Date对象, 输出默认格式的时间字符串)
        Date date5 = new Date(2000000000000L);
        String format2 = sdf2.format(date5);
        System.out.println(format2);// 2033-05/18  11/33-20 周三

        // 解析(字符串->Date对象)
        // 生成要解析的字符串
        String datetest = "2023-5-20  13:14";
        // 生成SDF, 必须要和上面的字符串格式对应
        SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-M-dd  HH:mm");
        // 调用解析方法, 输入要解析的字符串, 返回Date对象
        Date parse = sdf3.parse(datetest);
        long time1 = parse.getTime();
        System.out.println(time1);// 1684559640000

2.3 Ejercicio 1

// practice1
        String birthday = "2000-11-11";
        SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy-MM-dd");
        Date parse1 = sdf4.parse(birthday);
        SimpleDateFormat sdf5 = new SimpleDateFormat("yyyy年MM月dd日");
        String format1 = sdf5.format(parse1);
        System.out.println(format1);

2.4 Ejercicio 2

// practice2
        // start time
        String starttime = "2023-11-11  00:00:00";
        String endtime = "2023-11-11  00:10:00";
        String xiaojia = "2023-11-11  00:01:00";
        String xiaopi = "2023-11-11  00:11:00";
        SimpleDateFormat sdf6 = new SimpleDateFormat("yyyy-MM-dd  HH:mm:ss");

        Date startdate = sdf6.parse(starttime);
        Date enddate = sdf6.parse(endtime);
        Date xiaojiadate = sdf6.parse(xiaojia);
        Date xiaopidate = sdf6.parse(xiaopi);

        long startdateTime = startdate.getTime();
        long enddateTime = enddate.getTime();
        long xiaojiadateTime = xiaojiadate.getTime();
        long xiaopidateTime = xiaopidate.getTime();

        extracted(startdateTime, enddateTime, xiaojiadateTime);
        extracted(startdateTime, enddateTime, xiaopidateTime);

El método de extracción utilizado para determinar si participar en el 

private static void extracted(long startdateTime, long enddateTime, long Time) {
        if (Time >= startdateTime && Time <= enddateTime){
            System.out.println("参加上了");
        }else {
            System.out.println("没参加上");
        }
    }

3.calendario

3.1 Obtener la clase de calendario

Dado que el calendario es una clase abstracta, los objetos no se pueden crear directamente y deben obtenerse a través del método getInstance.

El objeto de calendario obtenido obtendrá diferentes objetos de calendario según las diferentes zonas horarias del sistema, y ​​el valor predeterminado representa la hora actual.
Pondrá la era, año, mes, día, hora, minuto, segundo, semana, etc. en el tiempo en una matriz.

Mes: Rango 0~11 Si el valor obtenido es 0, entonces en realidad es enero.

Semana: A los ojos de los extranjeros, el domingo es el primer día de la semana
1 (domingo) 2 (lunes) 3 (martes) - 4 (miércoles) - 5 (jueves) 6 (viernes) - 7 (sábado)

El contenido correspondiente al índice de la matriz en Calendar es: 

0: época

1 : año
2 : mes
3 : semana del año
4 : semana del mes
5 : día del mes (fecha)

3.2 Métodos comunes

Al usar el método get, ingrese el valor del índice en la matriz Calendar (definida como una constante en la clase Calendar)

Nota: El int obtenido debe convertirse en nuestro propio tiempo (semana y mes)

// calendar
        Calendar calendar = Calendar.getInstance();
        System.out.println(calendar);// java.util.GregorianCalendar[time=1677654807019,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=31,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2023,MONTH=2,WEEK_OF_YEAR=9,WEEK_OF_MONTH=1,DAY_OF_MONTH=1,DAY_OF_YEAR=60,DAY_OF_WEEK=4,DAY_OF_WEEK_IN_MONTH=1,AM_PM=1,HOUR=3,HOUR_OF_DAY=15,MINUTE=13,SECOND=27,MILLISECOND=19,ZONE_OFFSET=28800000,DST_OFFSET=0]
        // get Date calendar
        Date time4 = calendar.getTime();
        System.out.println(time4);// Wed Mar 01 15:10:54 CST 2023
        // set Date to Calendar
        Date date6 = new Date(5201314);
        calendar.setTime(date6);
        System.out.println(calendar);

        // get
        int year = calendar.get(Calendar.YEAR);
        int mouth = calendar.get(Calendar.MONTH) + 1;
        int day = calendar.get(Calendar.DAY_OF_MONTH);
        int week = calendar.get(Calendar.DAY_OF_WEEK);

        System.out.println(year + "-" + mouth + "-" + day + getweek(week));

        // modify year, mouth, day... of calendar
        calendar.set(Calendar.YEAR, 1999);
        calendar.set(Calendar.MONTH, 10);
        calendar.set(Calendar.DAY_OF_MONTH, 31);
        System.out.println(calendar);

        // add year, mouth, day... of calendar
        calendar.add(Calendar.YEAR, 2);
        calendar.add(Calendar.MONTH, 1);
        calendar.add(Calendar.DAY_OF_MONTH, -10);
        System.out.println(calendar);

Obtenga la semana que coincida con nuestro método getweek() 

private static String getweek(int index){
        String[] week = {"", "星期天", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
        return week[index];
    }

Supongo que te gusta

Origin blog.csdn.net/Orange_sparkle/article/details/129274643
Recomendado
Clasificación