Una descripción general de la clase Date de Java y la clase SimpleDateFormal

clase de fecha

1.1 Descripción general de la fecha

La clase java.util.Date` representa un instante específico, con una precisión de milisegundos.

Continúe revisando la descripción de la clase Date y descubra que Date tiene varios constructores, pero algunos de ellos están desactualizados, centrémonos en los dos constructores siguientes

  • public Date(): El valor de milisegundos desde el momento en que se ejecuta el programa hasta el origen del tiempo se convierte en un objeto Fecha, y el objeto Fecha se asigna e inicializa para representar el tiempo asignado (con precisión en milisegundos).

  • public Date(long date): Convierta la fecha del valor de milisegundos del parámetro especificado en un objeto Fecha, asigne el objeto Fecha e inicialice este objeto para representar la hora de referencia estándar (llamada "época"), es decir, las 00:00 del 1 de enero de 1970: 00 GMT. ) durante el número especificado de milisegundos.

Consejos: Dado que China está en el Octavo Distrito Este (GMT+08:00), es una zona horaria 8 horas por delante de UTC/hora media de Greenwich (GMT). Cuando GMT es 0:00, la hora estándar en el Octavo Distrito Este Son las 08:00.

En pocas palabras: use la estructura sin argumentos para establecer automáticamente el tiempo de milisegundos de la hora actual del sistema; especifique el parámetro de construcción de tipo largo para personalizar el tiempo de milisegundos. Por ejemplo:

import java.util.Date;
​
public class Demo01Date {
    public static void main(String[] args) {
        // 创建日期对象,把当前的时间
        System.out.println(new Date()); // Tue Jan 16 14:37:35 CST 2020
        // 创建日期对象,把当前的毫秒值转成日期对象
        System.out.println(new Date(0L)); // Thu Jan 01 08:00:00 CST 1970
    }
}

Consejos: cuando se utiliza el método println, se llama automáticamente al método toString en la clase Date. La clase Date anula el método toString en la clase Object, por lo que el resultado es una cadena en el formato especificado.

1.2 Métodos comunes de fecha

La mayoría de los métodos de la clase Date están desactualizados y los métodos más utilizados son:

  • public long getTime()Convierta el objeto de fecha al valor de milisegundos de tiempo correspondiente.

  • public void setTime(long time)Establece el valor de milisegundos dado por el parámetro del método al objeto de fecha

Código de muestra

public class DateDemo02 {
    public static void main(String[] args) {
        //创建日期对象
        Date d = new Date();
        
        //public long getTime():获取的是日期对象从1970年1月1日 00:00:00到现在的毫秒值
        //System.out.println(d.getTime());
        //System.out.println(d.getTime() * 1.0 / 1000 / 60 / 60 / 24 / 365 + "年");
​
        //public void setTime(long time):设置时间,给的是毫秒值
        //long time = 1000*60*60;
        long time = System.currentTimeMillis();
        d.setTime(time);
​
        System.out.println(d);
    }
}

Resumen: la fecha representa un instante de tiempo específico y podemos usar el objeto Fecha para operar a tiempo.

Clase SimpleDateFormat

java.text.SimpleDateFormatEs una clase de formato de fecha/hora, a través de esta clase podemos ayudarnos a completar la conversión entre fecha y texto, es decir, podemos convertir de un lado a otro entre el objeto Fecha y el objeto Cadena.

  • Formato : convierta el objeto Fecha en un objeto Cadena según el formato especificado.

  • Análisis : convierte el objeto String en un objeto Date según el formato especificado.

2.1 Método de construcción

Dado que DateFormat es una clase abstracta y no se puede usar directamente, se requieren subclases comunes java.text.SimpleDateFormat. Esta clase requiere un esquema (formato) para especificar criterios de formato o análisis. El método de construcción es:

  • public SimpleDateFormat(String pattern): construye un SimpleDateFormat con el patrón dado y los símbolos de formato de fecha de la configuración regional predeterminada. El patrón de parámetro es una cadena que representa un formato personalizado para fecha y hora.

2.2 Reglas de formato

Las reglas de formato comunes son:

Carta de identificación (distingue entre mayúsculas y minúsculas) significado
y Año
METRO luna
d Día
h hora
metro punto
s Segundo

Nota: Para obtener reglas de formato más detalladas, consulte la documentación API de la clase SimpleDateFormat.

2.3 Métodos comunes

Los métodos comunes de la clase DateFormat son:

  • public String format(Date date): formatea un objeto de fecha como una cadena.

  • public Date parse(String source): analiza una cadena en un objeto de fecha.

    package com.itheima.a01jdk7datedemo;
    ​
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    ​
    public class A03_SimpleDateFormatDemo1 {
        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);
            //3.打印结果
            System.out.println(date.getTime());//1699672271000
    ​
    ​
        }
    ​
        private static void method1() {
            //1.利用空参构造创建simpleDateFormat对象,默认格式
            SimpleDateFormat sdf1 = new SimpleDateFormat();
            Date d1 = new Date(0L);
            String str1 = sdf1.format(d1);
            System.out.println(str1);//1970/1/1 上午8:00
    ​
            //2.利用带参构造创建simpleDateFormat对象,指定格式
            SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss");
            String str2 = sdf2.format(d1);
            System.out.println(str2);//1970年01月01日 08:00:00
    ​
            //课堂练习:yyyy年MM月dd日 时:分:秒 星期
        }
    }
    ​

Resumen: DateFormat puede convertir objetos de fecha y cadenas entre sí.

2.4 Ejercicio 1 (fecha de nacimiento de la novia del primer amor)

/*
     假设,你初恋的出生年月日为:2000-11-11
     请用字符串表示这个数据,并将其转换为:2000年11月11日
​
     创建一个Date对象表示2000年11月11日
     创建一个SimpleDateFormat对象,并定义格式为年月日把时间变成:2000年11月11日
*/
​
//1.可以通过2000-11-11进行解析,解析成一个Date对象
String str = "2000-11-11";
//2.解析
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf1.parse(str);
//3.格式化
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日");
String result = sdf2.format(date);
System.out.println(result);

2.5 Ejercicio 2 (Actividad de segunda muerte)

/* 需求:
            秒杀活动开始时间:2023年11月11日 0:0:0(毫秒值)
            秒杀活动结束时间:2023年11月11日 0:10:0(毫秒值)
​
            小贾下单并付款的时间为:2023年11月11日 0:01:0
            小皮下单并付款的时间为:2023年11月11日 0:11:0
            用代码说明这两位同学有没有参加上秒杀活动?
         */
​
//1.定义字符串表示三个时间
String startstr = "2023年11月11日 0:0:0";
String endstr = "2023年11月11日 0:10:0";
String orderstr = "2023年11月11日 0:01:00";
//2.解析上面的三个时间,得到Date对象
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss");
Date startDate = sdf.parse(startstr);
Date endDate = sdf.parse(endstr);
Date orderDate = sdf.parse(orderstr);
​
//3.得到三个时间的毫秒值
long startTime = startDate.getTime();
long endTime = endDate.getTime();
long orderTime = orderDate.getTime();
​
//4.判断
if (orderTime >= startTime && orderTime <= endTime) {
    System.out.println("参加秒杀活动成功");
} else {
    System.out.println("参加秒杀活动失败");
}

Supongo que te gusta

Origin blog.csdn.net/qq_69748833/article/details/132656384
Recomendado
Clasificación