Tengo milisegundos. Necesito convertirlo al formato de fecha de
ejemplo:
23/10/2011
¿Cómo lograrlo?
java
android
android-date
java-date
Pattabi Raman
fuente
fuente
java.util.Date
,java.util.Calendar
yjava.text.SimpleDateFormat
ahora están legado, suplantados por los java.time clases. Gran parte de la funcionalidad java.time se ha actualizado a Java 6 y Java 7 en el proyecto ThreeTen-Backport . Más adaptado para Android anterior en el proyecto ThreeTenABP . Consulte Cómo utilizar ThreeTenABP… .Convierta el valor de milisegundos en
Date
instancia y páselo al formateador elegido.fuente
Llamar a esta función
fuente
fuente
probar este código puede ayudar, modifíquelo según sus necesidades
fuente
finalmente encuentro un código normal que funciona para mí
fuente
tl; dr
java.time
El enfoque moderno utiliza java.time clases que suplantan a las antiguas y problemáticas clases de fecha y hora heredadas utilizadas por todas las demás Respuestas.
Suponiendo que tiene
long
varios milisegundos desde la referencia de época del primer momento de 1970 en UTC, 1970-01-01T00: 00: 00Z…Para obtener una fecha se requiere una zona horaria. En un momento dado, la fecha varía en todo el mundo según la zona.
Extrae un valor de solo fecha.
Genere una cadena que represente ese valor utilizando el formato estándar ISO 8601.
Genere una cadena en formato personalizado.
Consejo: considere dejar que java.time se localice automáticamente en lugar de codificar un patrón de formato. Usa los
DateTimeFormatter.ofLocalized…
métodos.Acerca de java.time
El marco java.time está integrado en Java 8 y versiones posteriores. Estas clases suplantar la vieja problemáticos heredados clases de fecha y hora como
java.util.Date
,Calendar
, ySimpleDateFormat
.El proyecto Joda-Time , ahora en modo de mantenimiento , aconseja la migración a las clases java.time .
Para obtener más información, consulte el tutorial de Oracle . Y busque Stack Overflow para obtener muchos ejemplos y explicaciones. La especificación es JSR 310 .
Puede intercambiar objetos java.time directamente con su base de datos. Utilice un controlador JDBC compatible con JDBC 4.2 o posterior. No se necesitan cuerdas, no se necesitan
java.sql.*
clases.¿Dónde obtener las clases java.time?
El proyecto ThreeTen-Extra extiende java.time con clases adicionales. Este proyecto es un campo de pruebas para posibles adiciones futuras a java.time. Usted puede encontrar algunas clases útiles aquí, como
Interval
,YearWeek
,YearQuarter
, y más .fuente
Corto y eficaz:
fuente
fuente
fuente
He estado buscando una forma eficiente de hacer esto durante bastante tiempo y lo mejor que he encontrado es:
Ventajas:
Desventajas:
Puede almacenar en caché el objeto java.text.DateFormat, pero no es seguro para subprocesos. Esto está bien si lo está utilizando en el hilo de la interfaz de usuario.
fuente
fuente
Esta es la forma más fácil de usar Kotlin
fuente
SimpleDateFormat
clase obsoleta y notoriamente problemática . Al menos no como primera opción. Y no sin reserva alguna. Hoy tenemos mucho mejor enjava.time
, la API moderna de fecha y hora de Java, y suDateTimeFormatter
. Sí, puedes usarlo en Android. Para Android más antiguo, use desugaring o vea Cómo usar ThreeTenABP en Android Project .hh
? Compruebe aquí la diferencia entre mayúsculas y minúsculas.return Instant.ofEpochMilli(millis).atZone(ZoneId.systemDefault()).format(DateTimeFormatter.ofPattern(DATE_FORMAT, Locale.US))
. Sí, es más largo porque brinda más información sobre lo que está sucediendo, por lo que es una ventaja.Utilice SimpleDateFormat para Android N y superior. Utilice el calendario para versiones anteriores, por ejemplo:
Salida:
fileName antes: 2019-04-12-07: 14: 47 // use SimpleDateFormat
fileName después: 2019-4-12-7: 13: 12 // use Calender
fuente
Puede construir java.util.Date en milisegundos. Y luego lo convirtió en cadena con java.text.DateFormat.
fuente