Obtener fecha y hora en Android

Obtener fecha y hora en Android

En este post te mostraré cómo obtener la fecha y hora actual en Android, usando la zona horaria que tú prefieras. Para ello vamos a usar SimpleDateFormat y cualquier formato válido.

La función ayudante para obtener fecha y hora en Android

Primero veamos una función que nos dará cualquier fecha u hora según el formato que especifiquemos, así como la zona horaria.

Queda así:

@SuppressLint("SimpleDateFormat")
public static String obtenerFechaConFormato(String formato, String zonaHoraria) {
    Calendar calendar = Calendar.getInstance();
    Date date = calendar.getTime();
    SimpleDateFormat sdf;
    sdf = new SimpleDateFormat(formato);
    sdf.setTimeZone(TimeZone.getTimeZone(zonaHoraria));
    return sdf.format(date);
}

La función devolverá el tiempo actual según el formato y zona horaria. Veamos las otras funciones.

Obtener fecha

Para obtener solo la fecha, la invocamos así:

public static String obtenerFechaActual(String zonaHoraria) {
    String formato = "yyyy-MM-dd";
    return obtenerFechaConFormato(formato, zonaHoraria);
}

Si te preocupa la zona horaria, tranquilo, en un momento la veremos. En este caso obtendríamos la fecha en formato yyyy-MM-dd es decir, algo como 2020-01-16, pero puedes usar otro formato si quieres.

Obtener la hora

Del mismo modo tenemos una función que invoca a la primera que vimos en este post. Para obtenerla se hace lo siguiente:

public static String obtenerHoraActual(String zonaHoraria) {
    String formato = "HH:mm:ss";
    return obtenerFechaConFormato(formato, zonaHoraria);
}

Lo único que cambia es el formato, ahora es HH:mm:ss que daría algo como 15:45:20, de igual forma veremos la zona horaria más tarde.

Invocar función para obtener la fecha y hora en Android

Obtener fecha y hora en Android
Función que devuelve fecha u hora según el formato

Yo tengo todos estos métodos en una clase llamado Utiles, y queda así:

class Utiles {

    public static String obtenerHoraActual(String zonaHoraria) {
        String formato = "HH:mm:ss";
        return Utiles.obtenerFechaConFormato(formato, zonaHoraria);
    }

    public static String obtenerFechaActual(String zonaHoraria) {
        String formato = "yyyy-MM-dd";
        return Utiles.obtenerFechaConFormato(formato, zonaHoraria);
    }

    @SuppressLint("SimpleDateFormat")
    public static String obtenerFechaConFormato(String formato, String zonaHoraria) {
        Calendar calendar = Calendar.getInstance();
        Date date = calendar.getTime();
        SimpleDateFormat sdf;
        sdf = new SimpleDateFormat(formato);
        sdf.setTimeZone(TimeZone.getTimeZone(zonaHoraria));
        return sdf.format(date);
    }
}

Ahora, cada que quiero obtenerla simplemente hago:

Utiles.obtenerFechaActual("America/Mexico_City");
Utiles.obtenerHoraActual("America/Mexico_City");

Sobre la zona horaria es de México, pero por ejemplo, para España utilizo "GMT+1".

Conclusión

Te invito a ver más sobre Android, Java o Kotlin.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario

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