Pruebe este código de muestra: -
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class Test {
/**
* Main Method
*/
public static void main(String[] args) {
System.out.println(getDate(82233213123L, "dd/MM/yyyy hh:mm:ss.SSS"));
}
/**
* Return date in specified format.
* @param milliSeconds Date in milliseconds
* @param dateFormat Date format
* @return String representing date in specified format
*/
public static String getDate(long milliSeconds, String dateFormat)
{
// Create a DateFormatter object for displaying date in specified format.
SimpleDateFormat formatter = new SimpleDateFormat(dateFormat);
// Create a calendar object that will convert the date and time value in milliseconds to date.
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(milliSeconds);
return formatter.format(calendar.getTime());
}
}
Espero que esto ayude ...
java.util.Date,java.util.Calendaryjava.text.SimpleDateFormatahora 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
Dateinstancia 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
longvarios 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
SimpleDateFormatclase 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