Fecha de Java & Hora: SimpleDateFormat, fecha actual & Comparar

Tabla de contenido:

Anonim

En este tutorial, aprenderá:

  • Mostrar la fecha actual en Java
  • SimpleDateFormat: analizar y formatear fechas
  • Ejemplo de comparación de fechas

Primero entendamos los parámetros que consisten en una Fecha .

Principalmente contendrá:

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

En cuanto a los sistemas informáticos, hay bastantes parámetros que se pueden utilizar para asociarlos con una fecha. Los veremos en las partes 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 usar el objeto Date invocando el constructor de la clase 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 constructorDate 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 el ejemplo anterior, la fecha se muestra en formato predeterminado, si queremos mostrar la fecha y la hora en otro formato, primero comprenda el formato de fecha.

SimpleDateFormat: analizar y formatear fechas

Todos deben haber aprendido los alfabetos en su jardín de infancia.

….

Aprendamos ahora el ABC del formato de fecha.

Letra Componente de fecha u hora Ejemplos de
GRAMO Designador de era ANUNCIO
y Año 2018
METRO Mes del año Julio o julio o 07
w Semana en el año 27
W Semana en mes 2
D Día en el año 189
D Día en mes 10
F Día de la semana en el mes 2
mi Nombre del día en la semana Martes o mar
tu Número de día de la semana (1 = lunes,…, 7 = domingo) 1
a Marcador am / pm PM
H Hora del día (0-23) 0
k Hora del día (1-24) 24
K Hora en am / pm (0-11) 0
h Hora en am / pm (1-12) 12
metro Minuto en hora 30
s Segundo en minuto 55
S Milisegundo 978
z Zona horaria Hora 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, pueden ser remitidos en cualquier momento que necesite formatear una fecha en particular.

¿Cómo utilizar SimpleDateFormat?

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

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

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

El formato de fecha apropiado especificado será aaaa.MM.dd HH: mm: ss zzz

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

El formato de fecha apropiado especificado será : hh: mm: ss a dd-MMM-aaaa

Consejo: tenga cuidado con las mayúsculas. Si confunde M con m, obtendrá resultados no deseados.

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 objDateSystem.out.println(objDate);String strDateFormat = "hh:mm:ss a dd-MMM-yyyy"; //Date format is SpecifiedSimpleDateFormat objSDF = new SimpleDateFormat(strDateFormat); //Date format string is passed as an argument to the Date format objectSystem.out.println(objSDF.format(objDate)); //Date formatting is applied to the current date}}

Producción:

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

Ejemplo de comparación de fechas

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

Echemos un vistazo al siguiente fragmento de código:

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-1981Date2 : 12-10-2012Date 1 occurs before Date 2