Saltar al contenido

SimpleDateFormat, fecha actual y comparar

En este tutorial, aprenderá:

Consideremos primero los parámetros que consisten en un Fecha.

Será principalmente –

  • El es año (en 2 o 4 dígitos)
  • El es mes (ya sea en 2 dígitos, las primeras 3 letras del mes o la palabra completa del mes).
  • El es fecha (será la fecha real del mes).
  • El es día (el día de la fecha indicada, como el sol, lunes, martes, etc.)

Para los sistemas informáticos, hay muchos parámetros que se pueden utilizar para asociar una fecha. Los veremos en secciones posteriores de este tema.

Mostrar fecha en Java

Ahora veamos cómo Java nos proporciona la fecha. Primero, veremos cómo obtener la fecha actual.

Java proporciona una clase Date en el paquete java.util, el paquete proporciona varios métodos para jugar con la fecha.

Puede utilizar el objeto Date invocando el constructor de clases Date de la siguiente manera:

import java.util.Date;
class Date_Ex1 {
 public static void main(String args[]) {
  // Instantiate a Date object by invoking its constructor
  Date objDate = new Date();
  // Display the Date & Time using toString()
  System.out.println(objDate.toString());
 }
}

Producción:

Wed Nov 29 06:36:22 UTC 2017

En la fecha anterior que se muestra en formato predeterminado, si queremos mostrar la fecha y la hora en otro formato, primero comprenda el formato de la fecha.

SimpleDateFormat: analizar fechas y formato

Debes haber aprendido todos los alfabetos en tu vivero….

Ahora aprendamos los formatos de fecha ABC.

LetraComponente de fecha u horaEjemplos de
GRAMO.Denominador de edadANUNCIO
yAño2018
METRO.Un mes al añoJulio o julio o 07
wSemana en un año27
W.Semana en mes2
D.Día del año189
DDía en un mes10
F.Día de la semana en un mes2
MI.Nombre del día de la semanaMartes o martes
tuNúmero de día de la semana (1 = lunes, …, 7 = domingo)1
aMarcador de tiempoPM
H.Una vez al día (0-23)0
kUna vez al día (1-24)24
K.Uair en am / pm (0-11)0
hHora en el tiempo (1-12)12
metroMinutos por hora30
sSegundo en un minuto55
S.Milisegundo978
zZona horariaHora estándar del Pacífico; PST; GMT-08: 00
Z.Zona horaria-0800
X.Zona horaria-08 o -0800 o -08: 00

No se preocupe, no es necesario que los recuerde todos, se pueden redirigir en cualquier momento que necesite formatear una fecha determinada.

¿Cómo utilizar SimpleDateFormat?

Java proporciona una clase llamada SimpleDateFormat que le permite formatear y analizar fechas según sus necesidades.

Puede utilizar los caracteres anteriores para especificar el formato, por ejemplo:

1) Formato de fecha requerido: 2012.10.23 20:20:45 PST

Se especificará el formato de fecha apropiado: aaaa.MM.dd HH: mm: ss zzz

2) Formato de fecha requerido:09:30:00 AM 23-mayo-2012

Se especificará el formato de fecha apropiado:hh: mm: ss y dd-MMM-aaaa

Consejo: Tenga cuidado con el uso de mayúsculas en las letras. Si olvida M con m, obtendrá resultados indeseables.

Aprendamos esto con un ejemplo de código.

import java.text.SimpleDateFormat;
import java.util.Date;
class TestDates_Format {
 public static void main(String args[]) {
  Date objDate = new Date(); // Current System Date and time is assigned to objDate
  System.out.println(objDate);
  String strDateFormat = "hh:mm:ss a dd-MMM-yyyy"; //Date format is Specified
  SimpleDateFormat objSDF = new SimpleDateFormat(strDateFormat); //Date format string is passed as an argument to the Date format object
  System.out.println(objSDF.format(objDate)); //Date formatting is applied to the current date
 }
}

Producción:

Wed Nov 29 06:31:41 UTC 2017
06:31:41 AM 29-Nov-2017

Comparar fechas de ejemplo

El método más útil para comparar fechas es usar el método – compareTo ()

Echemos un vistazo al código de abajo.

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

class TestDates_Compare {
 public static void main(String args[]) throws ParseException {

  SimpleDateFormat objSDF = new SimpleDateFormat("dd-mm-yyyy");
  Date dt_1 = objSDF.parse("20-08-1981");
  Date dt_2 = objSDF.parse("12-10-2012");

  System.out.println("Date1 : " + objSDF.format(dt_1));
  System.out.println("Date2 : " + objSDF.format(dt_2));

  if (dt_1.compareTo(dt_2) > 0) {
   System.out.println("Date 1 occurs after Date 2");
  } // compareTo method returns the value greater than 0 if this Date is after the Date argument.
  else if (dt_1.compareTo(dt_2) < 0) {
   System.out.println("Date 1 occurs before Date 2");
  } // compareTo method returns the value less than 0 if this Date is before the Date argument;
  else if (dt_1.compareTo(dt_2) == 0) {
   System.out.println("Both are same dates");
  } // compareTo method returns the value 0 if the argument Date is equal to the second Date;
  else {
   System.out.println("You seem to be a time traveller !!");
  }
 }
}

Producción:

Date1 : 20-08-1981
Date2 : 12-10-2012
Date 1 occurs before Date 2