Programa Java para convertir strings a la fecha

Dada una string en formato de fecha, la tarea es convertir esta string en una fecha real. Aquí el concepto principal es el método parse() que ayuda en la conversión.

Ilustración:

Input : string = "2018-10-28T15:23:01Z"
Output: 2018-10-28T15:23:01Z

Input : string = "28 October, 2018"
Output: 2018-10-28

Diferentes métodos para convertir strings a la fecha

  1. Usando clase instantánea
  2. Usando la clase DateTimeFormater
  3. Usando la clase SimpleDateFormat

Sugerencia: debe leer los artículos Clase DateFormat y Clase SimpleDateFormat .

Ahora analicemos el método anterior uno por uno que es el siguiente: 

Método 1: usar clase instantánea

La clase instantánea en el paquete java.time proporciona una precisión de nanosegundos. Es similar a la clase Date pero ofrece mayor precisión.

Acercarse:

  1. Obtenga la string que se va a convertir.
  2. Cree un objeto de marca de tiempo instantáneo vacío.
  3. Convierta la string a la fecha usando el método Instant.parse().
  4. Si se convirtió correctamente, imprima la fecha.
  5. Si no se convierte correctamente, se lanza la excepción DateTimeParseException.

Ejemplo

Java

// Java Program to Convert String to Date
// Using Instant Class
 
// Importing required classes
import java.time.Instant;
import java.time.format.DateTimeParseException;
 
// Main class
class GFG {
 
    // Method
    // To convert String to Date
    public static Instant getDateFromString(String string)
    {
        // Creating an instant object
        Instant timestamp = null;
 
        // Parsing the string to Date
        timestamp = Instant.parse(string);
 
        // Returning the converted timestamp
        return timestamp;
    }
 
    // Method 2
    // Main driver method
    public static void main(String[] args)
    {
        // Getting the string
        String string = "2018-10-28T15:23:01Z";
 
        // Try block to check for exceptions
        try {
 
            // Getting the Date from String by
            // creating object of Instant class
            Instant timestamp = getDateFromString(string);
 
            // Printing the converted date
            System.out.println(timestamp);
        }
 
        // Catch block to handle exceptions
        catch (DateTimeParseException e) {
 
            // Throws DateTimeParseException
            // if the string cannot be parsed
            System.out.println("Exception: " + e);
        }
    }
}
Producción:

2018-10-28T15:23:01Z

 

Método 2: usar la clase DateTimeFormatter

Acercarse:

  1. Obtenga la string que se va a convertir y el formato requerido.
  2. Cree un objeto LocalDate vacío.
  3. Convierta la string a la fecha usando el método LocalDate.parse().
  4. Si se convirtió correctamente, imprima la fecha
  5. Si el patrón de string no es válido, se lanza IllegalArgumentException.
  6. Si no se convierte correctamente, se lanza la excepción DateTimeParseException.

Ejemplo:

Java

// Java program to convert String to Date
// Using DateTimeFormatter Class
 
// Importing required classes
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
 
// Main class
class GFG {
 
    // Method 1
    // To convert String to Date
    public static LocalDate
    getDateFromString(String string,
                      DateTimeFormatter format)
    {
        // Converting the string to date
        // in the specified format
        LocalDate date = LocalDate.parse(string, format);
 
        // Returning the converted date
        return date;
    }
 
    // Method 2
    // Main driver method
    public static void main(String[] args)
    {
        // Getting the custom string input
        String string = "28 October, 2018";
 
        // Getting the format by creating an object of
        // DateTImeFormatter class
        DateTimeFormatter format
            = DateTimeFormatter.ofPattern("d MMMM, yyyy");
 
        // Try block to check for exceptions
        try {
 
            // Getting the Date from String
            LocalDate date
                = getDateFromString(string, format);
 
            // Printing the converted date
            System.out.println(date);
        }
 
        // Block 1
        // Catch block to handle exceptions occurring
        // if the String pattern is invalid
        catch (IllegalArgumentException e) {
 
            // Display the exception
            System.out.println("Exception: " + e);
        }
 
        // Block 2
        // If the String was unable to be parsed
        catch (DateTimeParseException e) {
 
            // Display the exception
            System.out.println("Exception: " + e);
        }
    }
}
Producción:

2018-10-28

 

Método 3: Usar la clase SimpleDateFormat

Acercarse:

  1. Tomando la entrada de string y almacenándola en una string
  2. Creando un objeto de la clase Date con referencia a la clase SimpleDateFormat
  3. analizando el formato de fecha en él.
  4. Imprime la fecha correspondiente.

Ejemplo:

Java

// Java Program to Convert String to Date
// Using SimpleDateFormat class
 
// Importing required classes
import java.text.SimpleDateFormat;
import java.util.Date;
 
// Main class
class GFG {
 
    // Main driver method
    public static void main(String[] args) throws Exception
    {
 
        // Custom string as input
        String strDate = "29/12/96";
 
        // Creating an object of Date class with reference
        // to SimpleDateFormat class and
        // lately parsing the above string into it
        Date date = new SimpleDateFormat("dd/mm/yyyy")
                        .parse(strDate);
 
        // Print and display the date corresponding
        // to above input string
        System.out.print(strDate + " " + date);
    }
}
Producción

29/12/96 Fri Jan 29 00:12:00 UTC 96

Salida: También cuando. ejecutado en la terminal, es el siguiente:  

Publicación traducida automáticamente

Artículo escrito por RishabhPrabhu y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *