Avatar ·

Cómo obtener la fecha y hora actual en formato AAAA-MM-DD HH:MM:SS.milisegundos en Java?

¡Hola a todos! Soy nuevo en Java y estoy escribiendo una pequeña aplicación para registrar eventos. Necesito escribir en un archivo la hora actual con precisión de milisegundos en el formato: `2023-11-15 14:30:25.123`. Probé usar `java.util.Date` y `SimpleDateFormat`, pero algo no funciona. Aquí está mi código: ```java import java.util.Date; import java.text.SimpleDateFormat; public class Main { public static void main(String[] args) { Date now = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-DD HH:MI:SS.mmm"); String formattedDate = sdf.format(now); System.out.println(formattedDate); } } ``` En la salida obtengo algo extraño: `2023-11-335 14:09:25.025`. ¿De dónde sale `335` en lugar del día del mes? ¿Y por qué los minutos se muestran como `MI` en lugar de los minutos reales? Ya probé diferentes combinaciones de letras en el patrón, pero la documentación todavía me resulta complicada. Por favor, indíquenme cómo hacerlo correctamente. ¿Quizás hay una forma más moderna?