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.
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.
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.
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.
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"
.
Te invito a ver más sobre Android, Java o Kotlin.
Hoy te voy a presentar un creador de credenciales que acabo de programar y que…
Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…
En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…
En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…
Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…
En este artículo te voy a enseñar cómo usar un "top level await" esperando a…
Esta web usa cookies.