La fecha y la hora en Android se formatean usando la biblioteca SimpleDateFormat de Java, usando la instancia de Calendario que ayuda a obtener la fecha y la hora actuales del sistema. La fecha y la hora actuales son del tipo Largo, que se puede convertir a una fecha y hora legible por humanos. En este artículo, se ha discutido cómo los valores de fecha y hora pueden formatearse en varios formatos y mostrarse. Eche un vistazo a la siguiente imagen para tener una idea de toda la discusión.
Pasos para formatear la fecha y la hora en Android
Paso 1: crear un proyecto de actividad vacío
- Con Android Studio, cree un proyecto de actividad vacío. Consulte Android | ¿Cómo crear/comenzar un nuevo proyecto en Android Studio?
Paso 2: trabajar con el archivo activity_main.xml
- El diseño principal del archivo de actividad que contiene 8 TextViews . Uno para mostrar el valor actual de fecha y hora del sistema en tipo largo y otros para mostrar el mismo valor de fecha y hora en un formato legible por humanos.
- Para implementar la interfaz de usuario, invoque el siguiente código dentro del archivo activity_main.xml .
XML
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" tools:ignore="HardcodedText"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="16dp" android:layout_marginTop="32dp" android:text="Date and Time value in Long type :" android:textSize="18sp" android:textStyle="bold" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <!--text view to show the current date and time in Long type--> <TextView android:id="@+id/dateTimeLongValue" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="16dp" android:layout_marginTop="64dp" android:textSize="18sp" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="16dp" android:layout_marginTop="64dp" android:text="Date and Time formatted :" android:textSize="18sp" android:textStyle="bold" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/dateTimeLongValue" /> <!--text views to show the current date and time in formatted and human readable way--> <TextView android:id="@+id/format1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="16dp" android:layout_marginTop="16dp" android:textSize="18sp" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/textView" /> <TextView android:id="@+id/format2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="16dp" android:layout_marginTop="16dp" android:textSize="18sp" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/format1" /> <TextView android:id="@+id/format3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="16dp" android:layout_marginTop="16dp" android:textSize="18sp" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/format2" /> <TextView android:id="@+id/format4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="16dp" android:layout_marginTop="16dp" android:textSize="18sp" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/format3" /> <TextView android:id="@+id/format5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="16dp" android:layout_marginTop="16dp" android:textSize="18sp" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/format4" /> <TextView android:id="@+id/format6" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="16dp" android:layout_marginTop="16dp" android:textSize="18sp" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/format5" /> <TextView android:id="@+id/format7" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="16dp" android:layout_marginTop="16dp" android:textSize="18sp" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/format6" /> </androidx.constraintlayout.widget.ConstraintLayout>
Paso 3: trabajar con el archivo MainActivity
Comprender la forma de formatear la fecha y la hora en Android usando SimpleDateFormat
- En primer lugar, se crea la instancia del Calendario y se pasa al método SimpleDateFormat el formato deseado de fecha y hora a mostrar . La String debe incluir los siguientes caracteres y uno puede incluir los separadores como -, / etc.
- La siguiente tabla incluye los caracteres que se utilizarán para generar el patrón común de fecha y hora más utilizado.
Carácter a utilizar |
Producción |
---|---|
dd | Fecha en valor numérico |
mi | Día en String (forma corta. Ej: Lun) |
EEEE | Día en string (forma completa. Ej.: lunes) |
milímetro | Mes en valor numérico |
aaaa | Año en valor numérico |
LLL | Mes en String (forma corta. Ej: Mar) |
LLLL | Mes en string (forma completa. Ej.: marzo) |
S.S | Hora en valor numérico (formato de tiempo de 24 horas) |
KK | Hora en valor numérico (formato de tiempo de 12 horas) |
milímetro | Minuto en valor numérico |
ss | Segundos en valor numérico |
aaa | Muestra AM o PM (según el formato de tiempo de 12 horas) |
z | Muestra la zona horaria de la región. |
- Consulte el siguiente código y su salida para tener una mejor idea de la tabla anterior.
Kotlin
import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.widget.TextView import java.text.SimpleDateFormat import java.util.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) var dateTime: String var calendar: Calendar var simpleDateFormat: SimpleDateFormat // register all the text view with appropriate IDs val dateTimeInLongTextView: TextView = findViewById(R.id.dateTimeLongValue) val format1: TextView = findViewById(R.id.format1) val format2: TextView = findViewById(R.id.format2) val format3: TextView = findViewById(R.id.format3) val format4: TextView = findViewById(R.id.format4) val format5: TextView = findViewById(R.id.format5) val format6: TextView = findViewById(R.id.format6) val format7: TextView = findViewById(R.id.format7) // get the Long type value of the current system date val dateValueInLong: Long = System.currentTimeMillis() dateTimeInLongTextView.text = dateValueInLong.toString() // different format type to format the // current date and time of the system // format type 1 calendar = Calendar.getInstance() simpleDateFormat = SimpleDateFormat("dd.MM.yyyy HH:mm:ss aaa z") dateTime = simpleDateFormat.format(calendar.time).toString() format1.text = dateTime // format type 2 calendar = Calendar.getInstance() simpleDateFormat = SimpleDateFormat("dd-MM-yyyy HH:mm:ss aaa z") dateTime = simpleDateFormat.format(calendar.time).toString() format2.text = dateTime // format type 3 calendar = Calendar.getInstance() simpleDateFormat = SimpleDateFormat("dd/MM/yyyy HH:mm:ss aaa z") dateTime = simpleDateFormat.format(calendar.time).toString() format3.text = dateTime // format type 4 calendar = Calendar.getInstance() simpleDateFormat = SimpleDateFormat("dd.LLL.yyyy HH:mm:ss aaa z") dateTime = simpleDateFormat.format(calendar.time).toString() format4.text = dateTime // format type 5 calendar = Calendar.getInstance() simpleDateFormat = SimpleDateFormat("dd.LLLL.yyyy HH:mm:ss aaa z") dateTime = simpleDateFormat.format(calendar.time).toString() format5.text = dateTime // format type 6 calendar = Calendar.getInstance() simpleDateFormat = SimpleDateFormat("E.LLLL.yyyy HH:mm:ss aaa z") dateTime = simpleDateFormat.format(calendar.time).toString() format6.text = dateTime // format type 7 calendar = Calendar.getInstance() simpleDateFormat = SimpleDateFormat("EEEE.LLLL.yyyy KK:mm:ss aaa z") dateTime = simpleDateFormat.format(calendar.time).toString() format7.text = dateTime } }
Java
import android.os.Bundle; import android.widget.TextView; import androidx.appcompat.app.AppCompatActivity; import java.text.SimpleDateFormat; import java.util.Calendar; public class MainActivity extends AppCompatActivity { TextView dateTimeInLongTextView, format1, format2, format3, format4, format5, format6, format7; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); String dateTime; Calendar calendar; SimpleDateFormat simpleDateFormat; // register all the text view with appropriate IDs dateTimeInLongTextView = (TextView) findViewById(R.id.dateTimeLongValue); format1 = (TextView) findViewById(R.id.format1); format2 = (TextView) findViewById(R.id.format2); format3 = (TextView) findViewById(R.id.format3); format4 = (TextView) findViewById(R.id.format4); format5 = (TextView) findViewById(R.id.format5); format6 = (TextView) findViewById(R.id.format6); format7 = (TextView) findViewById(R.id.format7); // get the Long type value of the current system date Long dateValueInLong = System.currentTimeMillis(); dateTimeInLongTextView.setText(dateValueInLong.toString()); // different format type to format the // current date and time of the system // format type 1 calendar = Calendar.getInstance(); simpleDateFormat = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss aaa z"); dateTime = simpleDateFormat.format(calendar.getTime()).toString(); format1.setText(dateTime); // format type 2 calendar = Calendar.getInstance(); simpleDateFormat = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss aaa z"); dateTime = simpleDateFormat.format(calendar.getTime()).toString(); format2.setText(dateTime); // format type 3 calendar = Calendar.getInstance(); simpleDateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss aaa z"); dateTime = simpleDateFormat.format(calendar.getTime()).toString(); format3.setText(dateTime); // format type 4 calendar = Calendar.getInstance(); simpleDateFormat = new SimpleDateFormat("dd.LLL.yyyy HH:mm:ss aaa z"); dateTime = simpleDateFormat.format(calendar.getTime()).toString(); format4.setText(dateTime); // format type 5 calendar = Calendar.getInstance(); simpleDateFormat = new SimpleDateFormat("dd.LLLL.yyyy HH:mm:ss aaa z"); dateTime = simpleDateFormat.format(calendar.getTime()).toString(); format5.setText(dateTime); // format type 6 calendar = Calendar.getInstance(); simpleDateFormat = new SimpleDateFormat("E.LLLL.yyyy HH:mm:ss aaa z"); dateTime = simpleDateFormat.format(calendar.getTime()).toString(); format6.setText(dateTime); // format type 7 calendar = Calendar.getInstance(); simpleDateFormat = new SimpleDateFormat("EEEE.LLLL.yyyy KK:mm:ss aaa z"); dateTime = simpleDateFormat.format(calendar.getTime()).toString(); format7.setText(dateTime); } }
Producción:
Publicación traducida automáticamente
Artículo escrito por adityamshidlyali y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA