Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Java

Java - Fecha y hora

Java proporciona la fecha clase disponible en java.util paquete, esta clase encapsula la fecha y hora actuales.

La clase Date admite dos constructores, como se muestra en la siguiente tabla.

Sr.No. Constructor y descripción
1

Fecha ( )

Este constructor inicializa el objeto con la fecha y hora actuales.

2

Fecha (milisegundos largos)

Este constructor acepta un argumento que es igual a la cantidad de milisegundos que han transcurrido desde la medianoche del 1 de enero de 1970.

Los siguientes son los métodos de la clase de fecha.

Sr.No. Método y descripción
1

booleano después de (fecha fecha)

Devuelve verdadero si el objeto Fecha que invoca contiene una fecha posterior a la especificada por fecha; de lo contrario, devuelve falso.

2

booleano antes de (fecha fecha)

Devuelve verdadero si el objeto Fecha que invoca contiene una fecha anterior a la especificada por fecha; de lo contrario, devuelve falso.

3

Clon de objeto( )

Duplica el objeto Fecha de invocación.

4

int compareTo(Fecha fecha)

Compara el valor del objeto que invoca con el de la fecha. Devuelve 0 si los valores son iguales. Devuelve un valor negativo si el objeto que invoca es anterior a la fecha. Devuelve un valor positivo si el objeto que invoca es posterior a la fecha.

5

int compareTo(Objeto objeto)

Funciona de forma idéntica a compareTo(Date) si obj es de clase Date. De lo contrario, arroja una ClassCastException.

6

igual booleano(fecha del objeto)

Devuelve verdadero si el objeto Fecha que invoca contiene la misma hora y fecha que el especificado por fecha; de lo contrario, devuelve falso.

7

getTimelargo( )

Devuelve el número de milisegundos transcurridos desde el 1 de enero de 1970.

8

código hash int( )

Devuelve un código hash para el objeto que invoca.

9

anular setTime(mucho tiempo)

Establece la hora y la fecha según lo especificado por time, que representa el tiempo transcurrido en milisegundos desde la medianoche del 1 de enero de 1970.

10

Cadena a Cadena( )

Convierte el objeto Fecha de invocación en una cadena y devuelve el resultado.

Obtención de fecha y hora actuales

Este es un método muy fácil para obtener la fecha y hora actual en Java. Puede usar un objeto Fecha simple con toString() método para imprimir la fecha y hora actuales de la siguiente manera −

Ejemplo

Demostración en vivo
import java.util.Date;
public class DateDemo {

   public static void main(String args[]) {
      // Instantiate a Date object
      Date date = new Date();

      // display time and date using toString()
      System.out.println(date.toString());
   }
}

Esto producirá el siguiente resultado −

Salida

on May 04 09:51:52 CDT 2009

Comparación de fechas

Las siguientes son las tres formas de comparar dos fechas −

Formato de fecha usando SimpleDateFormat

SimpleDateFormat es una clase concreta para formatear y analizar fechas de manera sensible a la configuración regional. SimpleDateFormat le permite comenzar eligiendo cualquier patrón definido por el usuario para el formato de fecha y hora.

Ejemplo

Demostración en vivo
import java.util.*;
import java.text.*;

public class DateDemo {

   public static void main(String args[]) {
      Date dNow = new Date( );
      SimpleDateFormat ft = 
      new SimpleDateFormat ("E yyyy.MM.dd 'at' hh:mm:ss a zzz");

      System.out.println("Current Date: " + ft.format(dNow));
   }
}

Esto producirá el siguiente resultado −

Salida

Current Date: Sun 2004.07.18 at 04:14:09 PM PDT

Códigos de formato de formato de fecha simple

Para especificar el formato de hora, utilice una cadena de patrón de hora. En este patrón, todas las letras ASCII se reservan como letras de patrón, que se definen de la siguiente manera −

Personaje Descripción Ejemplo
G Designador de era AD
y Año en cuatro dígitos 2001
M Mes del año julio o 07
d Día del mes 10
h Hora en A.M./P.M. (1~12) 12
H Hora del día (0~23) 22
m Minuto en hora 30
s Segundo en minuto 55
S Milisegundo 234
E Día de la semana martes
D Día del año 360
F Día de la semana en el mes 2 (segundo miércoles de julio)
w Semana del año 40
W Semana en mes 1
a A.M./P.M. marcador PM
k Hora del día (1~24) 24
K Hora en A.M./P.M. (0~11) 10
z Zona horaria hora estándar del este
' Escape para texto Delimitador
" Comilla simple `

Formato de fecha usando printf

El formato de fecha y hora se puede hacer muy fácilmente usando printf método. Usas un formato de dos letras, comenzando con t y terminando en una de las letras de la tabla como se muestra en el siguiente código.

Ejemplo

Demostración en vivo
import java.util.Date;
public class DateDemo {

   public static void main(String args[]) {
      // Instantiate a Date object
      Date date = new Date();

      // display time and date
      String str = String.format("Current Date/Time : %tc", date );

      System.out.printf(str);
   }
}

Esto producirá el siguiente resultado −

Salida

Current Date/Time : Sat Dec 15 16:37:57 MST 2012

Sería un poco tonto si tuviera que proporcionar la fecha varias veces para formatear cada parte. Por esa razón, una cadena de formato puede indicar el índice del argumento a formatear.

El índice debe seguir inmediatamente al % y debe terminar con un $.

Ejemplo

Demostración en vivo
import java.util.Date;
public class DateDemo {

   public static void main(String args[]) {
      // Instantiate a Date object
      Date date = new Date();
  
      // display time and date
      System.out.printf("%1$s %2$tB %2$td, %2$tY", "Due date:", date);
   }
}

Esto producirá el siguiente resultado −

Salida

Due date: February 09, 2004

Alternativamente, puede usar la bandera <. Indica que se debe volver a utilizar el mismo argumento que en la especificación de formato anterior.

Ejemplo

Demostración en vivo
import java.util.Date;
public class DateDemo {

   public static void main(String args[]) {
      // Instantiate a Date object
      Date date = new Date();
  
      // display formatted date
      System.out.printf("%s %tB %<te, %<tY", "Due date:", date);
   }
}

Esto producirá el siguiente resultado −

Salida

Due date: February 09, 2004

Caracteres de conversión de fecha y hora

Personaje Descripción Ejemplo
c Fecha y hora completa Lunes 04 de mayo 09:51:52 CDT 2009
F Fecha ISO 8601 2004-02-09
D EE.UU. fecha formateada (mes/día/año) 02/09/2004
T hora de 24 horas 18:05:19
r tiempo de 12 horas 06:05:19 p. m.
R Hora de 24 horas, sin segundos 18:05
Y Año de cuatro dígitos (con ceros a la izquierda) 2004
y Últimos dos dígitos del año (con ceros a la izquierda) 04
C Primeros dos dígitos del año (con ceros a la izquierda) 20
B Nombre completo del mes febrero
b Nombre abreviado del mes febrero
m Mes de dos dígitos (con ceros a la izquierda) 02
d Día de dos dígitos (con ceros a la izquierda) 03
e Día de dos dígitos (sin ceros a la izquierda) 9
A Nombre completo del día de la semana lunes
a Nombre abreviado del día de la semana lunes
j Día del año de tres dígitos (con ceros a la izquierda) 069
H Hora de dos dígitos (con ceros a la izquierda), entre 00 y 23 18
k Hora de dos dígitos (sin ceros a la izquierda), entre 0 y 23 18
Yo Hora de dos dígitos (con ceros a la izquierda), entre 01 y 12 06
l Hora de dos dígitos (sin ceros a la izquierda), entre 1 y 12 6
M Minutos de dos dígitos (con ceros a la izquierda) 05
S Segundos de dos dígitos (con ceros a la izquierda) 19
L Milisegundos de tres dígitos (con ceros a la izquierda) 047
N Nanosegundos de nueve dígitos (con ceros a la izquierda) 047000000
P Marcador de mañana o tarde en mayúsculas PM
p Marcador de mañana o tarde en minúsculas pm
z Desplazamiento numérico RFC 822 de GMT -0800
Z Zona horaria PST
s Segundos desde 1970-01-01 00:00:00 GMT 1078884319
P Milisegundos desde 1970-01-01 00:00:00 GMT 1078884319047

Hay otras clases útiles relacionadas con Fecha y hora. Para obtener más detalles, puede consultar la documentación de Java Standard.

Análisis de cadenas en fechas

La clase SimpleDateFormat tiene algunos métodos adicionales, en particular parse(), que intenta analizar una cadena según el formato almacenado en el objeto SimpleDateFormat dado.

Ejemplo

Demostración en vivo
import java.util.*;
import java.text.*;
  
public class DateDemo {

   public static void main(String args[]) {
      SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd"); 
      String input = args.length == 0 ? "1818-11-11" : args[0]; 

      System.out.print(input + " Parses as "); 
      Date t;
      try {
         t = ft.parse(input); 
         System.out.println(t); 
      } catch (ParseException e) { 
         System.out.println("Unparseable using " + ft); 
      }
   }
}

Una ejecución de muestra del programa anterior produciría el siguiente resultado −

Salida

1818-11-11 Parses as Wed Nov 11 00:00:00 EST 1818

Dormir por un rato

Puede dormir durante cualquier período de tiempo desde un milisegundo hasta la vida útil de su computadora. Por ejemplo, el siguiente programa dormiría durante 3 segundos −

Ejemplo

Demostración en vivo
import java.util.*;
public class SleepDemo {

   public static void main(String args[]) {
      try { 
         System.out.println(new Date( ) + "\n"); 
         Thread.sleep(5*60*10); 
         System.out.println(new Date( ) + "\n"); 
      } catch (Exception e) {
         System.out.println("Got an exception!"); 
      }
   }
}

Esto producirá el siguiente resultado −

Salida

Sun May 03 18:04:41 GMT 2009
Sun May 03 18:04:51 GMT 2009

Medición del tiempo transcurrido

A veces, es posible que necesite medir un punto en el tiempo en milisegundos. Así que reescribamos el ejemplo anterior una vez más −

Ejemplo

Demostración en vivo
import java.util.*;
public class DiffDemo {

   public static void main(String args[]) {
      try {
         long start = System.currentTimeMillis( );
         System.out.println(new Date( ) + "\n");
         
         Thread.sleep(5*60*10);
         System.out.println(new Date( ) + "\n");
         
         long end = System.currentTimeMillis( );
         long diff = end - start;
         System.out.println("Difference is : " + diff);
      } catch (Exception e) {
         System.out.println("Got an exception!");
      }
   }
}

Esto producirá el siguiente resultado −

Salida

Sun May 03 18:16:51 GMT 2009
Sun May 03 18:16:57 GMT 2009
Difference is : 5993

Clase de calendario gregoriano

GregorianCalendar es una implementación concreta de una clase Calendar que implementa el calendario gregoriano normal con el que está familiarizado. No discutimos la clase Calendario en este tutorial, puede buscar documentación estándar de Java para esto.

El getInstance( ) El método Calendar devuelve un GregorianCalendar inicializado con la fecha y la hora actuales en la configuración regional y la zona horaria predeterminadas. GregorianCalendar define dos campos:AD y BC. Estos representan las dos eras definidas por el calendario gregoriano.

También hay varios constructores para objetos GregorianCalendar −

Sr.No. Constructor y descripción
1

Calendario gregoriano()

Construye un calendario gregoriano predeterminado utilizando la hora actual en la zona horaria predeterminada con la configuración regional predeterminada.

2

Calendariogregoriano(int año, int mes, int fecha)

Construye un calendario gregoriano con la fecha dada establecida en la zona horaria predeterminada con la configuración regional predeterminada.

3

Calendariogregoriano(int año, int mes, int fecha, int hora, int minuto)

Construye un calendario gregoriano con la fecha y la hora establecidas para la zona horaria predeterminada con la configuración regional predeterminada.

4

Calendariogregoriano(int año, int mes, int fecha, int hora, int minuto, int segundo)

Construye un calendario gregoriano con la fecha y la hora establecidas para la zona horaria predeterminada con la configuración regional predeterminada.

5

Calendariogregoriano(Local aLocale)

Construye un calendario gregoriano basado en la hora actual en la zona horaria predeterminada con la configuración regional dada.

6

Calendario gregoriano(zona horaria)

Construye un calendario gregoriano basado en la hora actual en la zona horaria dada con la configuración regional predeterminada.

7

GregorianCalendar(TimeZone zone, Locale aLocale)

Construye un calendario gregoriano basado en la hora actual en la zona horaria dada con la configuración regional dada.

Aquí está la lista de algunos métodos de soporte útiles provistos por la clase GregorianCalendar −

Sr.No. Método y descripción
1

anular agregar(campo int, cantidad int)

Agrega la cantidad de tiempo especificada (firmada) al campo de tiempo dado, según las reglas del calendario.

2

computeFields vacíos protegidos()

Convierte UTC como milisegundos a valores de campo de tiempo.

3

computeTime vacío protegido()

Anula el calendario Convierte los valores del campo de tiempo a UTC como milisegundos.

4

igual booleano(Objeto obj)

Compara este calendario gregoriano con una referencia de objeto.

5

int get(campo int)

Obtiene el valor de un campo de tiempo dado.

6

int getActualMaximum(campo int)

Devuelve el valor máximo que podría tener este campo, dada la fecha actual.

7

int getActualMinimum(campo int)

Devuelve el valor mínimo que podría tener este campo, dada la fecha actual.

8

int getGreatestMinimum(campo int)

Devuelve el valor mínimo más alto para el campo dado si varía.

9

Fecha getGregorianChange()

Obtiene la fecha de cambio del calendario gregoriano.

10

int getLeastMaximum(campo int)

Devuelve el valor máximo más bajo para el campo dado si varía.

11

int getMaximum(int campo)

Devuelve el valor máximo para el campo dado.

12

Date getTime()

Obtiene la hora actual de este Calendario.

13

getTimeInMillis largo()

Obtiene la hora actual de este calendario como larga.

14

Zona horaria getTimeZone()

Obtiene la zona horaria.

15

int getMinimum(int campo)

Devuelve el valor mínimo para el campo dado.

16

código hash int()

Anula hashCode.

17

booleano esAñoBisiesto(int año)

Determina si el año dado es un año bisiesto.

18

void roll(campo int, booleano arriba)

Suma o resta (arriba/abajo) una sola unidad de tiempo en el campo de tiempo dado sin cambiar los campos más grandes.

19

conjunto vacío (campo int, valor int)

Establece el campo de tiempo con el valor dado.

20

conjunto nulo(int año, int mes, int fecha)

Establece los valores para los campos año, mes y fecha.

21

conjunto nulo(int año, int mes, int fecha, int hora, int minuto)

Establece los valores para los campos año, mes, fecha, hora y minuto.

22

conjunto nulo(int año, int mes, int fecha, int hora, int minuto, int segundo)

Establece los valores para los campos año, mes, fecha, hora, minuto y segundo.

23

void setGregorianChange(Fecha fecha)

Establece la fecha de cambio de GregorianCalendar.

24

void setTime(Fecha fecha)

Establece la hora actual de este calendario con la fecha dada.

25

void setTimeInMillis(long millis)

Establece la hora actual de este Calendario a partir del valor largo dado.

26

void setTimeZone(valor de zona horaria)

Establece la zona horaria con el valor de zona horaria dado.

27

Cadena a Cadena()

Devuelve una representación de cadena de este calendario.

Ejemplo

Demostración en vivo
import java.util.*;
public class GregorianCalendarDemo {

   public static void main(String args[]) {
      String months[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", 
         "Oct", "Nov", "Dec"};
      
      int year;
      // Create a Gregorian calendar initialized
      // with the current date and time in the
      // default locale and timezone.
      
      GregorianCalendar gcalendar = new GregorianCalendar();
      
      // Display current time and date information.
      System.out.print("Date: ");
      System.out.print(months[gcalendar.get(Calendar.MONTH)]);
      System.out.print(" " + gcalendar.get(Calendar.DATE) + " ");
      System.out.println(year = gcalendar.get(Calendar.YEAR));
      System.out.print("Time: ");
      System.out.print(gcalendar.get(Calendar.HOUR) + ":");
      System.out.print(gcalendar.get(Calendar.MINUTE) + ":");
      System.out.println(gcalendar.get(Calendar.SECOND));

      // Test if the current year is a leap year
      if(gcalendar.isLeapYear(year)) {
         System.out.println("The current year is a leap year");
      }else {
         System.out.println("The current year is not a leap year");
      }
   }
}

Esto producirá el siguiente resultado −

Salida

Date: Apr 22 2009
Time: 11:25:27
The current year is not a leap year

Para obtener una lista completa de las constantes disponibles en la clase Calendario, puede consultar la documentación estándar de Java.


Java

  1. Clase y objeto de C#
  2. ¿Cómo obtener la fecha y hora actuales en Python?
  3. Variables y literales de Java
  4. Expresiones, declaraciones y bloques de Java
  5. Objetos y clases de Java
  6. Clase abstracta de Java y métodos abstractos
  7. Clase interna y anidada de Java
  8. Clase única de Java
  9. Java lanza y lanza
  10. Autoboxing y unboxing de Java
  11. Java - Serialización