Cómo obtener la fecha / hora actual en Java

¿Cuál es la mejor manera de obtener la fecha / hora actual en Java?

Depende de la forma de fecha / hora que desee:

  • Si desea que la fecha / hora sea un único valor numérico, System.currentTimeMillis() proporciona, expresado como el número de milisegundos después de UNIX epoch (como Java long ). Este valor es un delta desde un punto de tiempo UTC, y es independiente de la zona horaria local … suponiendo que el reloj del sistema se ha configurado correctamente.

  • Si desea la fecha / hora en un formulario que le permita acceder numéricamente a los componentes (año, mes, etc.), puede usar uno de los siguientes:

    • new Date() le da un objeto Date inicializado con la fecha / hora actual. El problema es que los métodos de la API de Date son en su mayoría defectuosos … y obsoletos.

    • Calendar.getInstance() le proporciona un objeto de Calendar inicializado con la fecha / hora actual, utilizando la configuración Locale predeterminada y TimeZone . Otras sobrecargas le permiten usar una Locale y / o zona TimeZone específica. El calendario funciona … pero las API siguen siendo engorrosas.

    • new org.joda.time.DateTime() le da un objeto Joda-time inicializado con la fecha / hora actual, usando la zona horaria y la cronología predeterminadas. Hay muchas otras alternativas de Joda … demasiadas para describir aquí. (Pero tenga en cuenta que algunas personas informan que el tiempo de Joda tiene problemas de rendimiento. Por ejemplo, LocalDateTime de Jodatime es lento cuando se usa por primera vez ).

    • en Java 8, llamando a LocalDateTime.now() y ZonedDateTime.now() le dará representaciones 1 para la fecha / hora actual.

Antes de Java 8, la mayoría de las personas que conocían estas cosas recomendaban que Joda-time tuviera (con diferencia) las mejores API de Java para hacer cosas relacionadas con los cálculos de punto de tiempo y duración. Con Java 8, esto ya no es verdad. Sin embargo, si ya está usando el tiempo Joda en su base de código, no hay dos razones fuertes para migrar.


1 – Tenga en cuenta que LocalDateTime no incluye una zona horaria. Como dice javadoc: “No puede representar un instante en la línea de tiempo sin información adicional, como un desplazamiento o zona horaria”.

2 – Su código no se romperá si no lo hace, y no recibirá advertencias de depreciación. Claro, la base de código de Joda probablemente dejará de recibir actualizaciones, pero es poco probable que las necesite. Sin actualizaciones significa estabilidad y eso es algo bueno .

Si solo necesita imprimir una marca de tiempo en el formato AAAA.MM.DD-HH.MM.SS (caso muy frecuente), entonces esta es la manera de hacerlo:

 String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime()); 

Si desea la fecha actual como Cadena, intente esto:

 DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); Date date = new Date(); System.out.println(dateFormat.format(date)); 

o

 DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); Calendar cal = Calendar.getInstance(); System.out.println(dateFormat.format(cal.getTime())); 

http://www.mkyong.com/java/java-how-to-get-current-date-time-date-and-calender/

En Java 8 es:

 LocalDateTime.now() 

y en caso de que necesite información de zona horaria:

 ZonedDateTime.now() 

y en caso de que desee imprimir una cadena con formato de lujo:

 System.out.println(ZonedDateTime.now().format(DateTimeFormatter.RFC_1123_DATE_TIME)) 

Solo crea un objeto Date …

 Date date = new Date(); 
  // 2015/09/27 15:07:53 System.out.println( new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(Calendar.getInstance().getTime()) ); // 15:07:53 System.out.println( new SimpleDateFormat("HH:mm:ss").format(Calendar.getInstance().getTime()) ); // 09/28/2015 System.out.println(new SimpleDateFormat("MM/dd/yyyy").format(Calendar.getInstance().getTime())); // 20150928_161823 System.out.println( new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime()) ); // Mon Sep 28 16:24:28 CEST 2015 System.out.println( Calendar.getInstance().getTime() ); // Mon Sep 28 16:24:51 CEST 2015 System.out.println( new Date(System.currentTimeMillis()) ); // Mon Sep 28 System.out.println( new Date().toString().substring(0, 10) ); // 2015-09-28 System.out.println( new java.sql.Date(System.currentTimeMillis()) ); // 14:32:26 Date d = new Date(); System.out.println( (d.getTime() / 1000 / 60 / 60) % 24 + ":" + (d.getTime() / 1000 / 60) % 60 + ":" + (d.getTime() / 1000) % 60 ); // 2015-09-28 17:12:35.584 System.out.println( new Timestamp(System.currentTimeMillis()) ); // Java 8 // 2015-09-28T16:16:23.308+02:00[Europe/Belgrade] System.out.println( ZonedDateTime.now() ); // Mon, 28 Sep 2015 16:16:23 +0200 System.out.println( ZonedDateTime.now().format(DateTimeFormatter.RFC_1123_DATE_TIME) ); // 2015-09-28 System.out.println( LocalDate.now(ZoneId.of("Europe/Paris")) ); // rest zones id in ZoneId class // 16 System.out.println( LocalTime.now().getHour() ); // 2015-09-28T16:16:23.315 System.out.println( LocalDateTime.now() ); 

Utilizar:

 String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime()); System.out.println(timeStamp ); 

(Esta funcionando.)

tl; dr

 Instant.now() // Capture the current moment in UTC, with a resolution of nanoseconds. 

… o …

 ZonedDateTime.now( ZoneId.of( "America/Montreal" ) ) // Capture the current moment as seen in the wall-clock time used by the people of a particular region (a time zone). 

java.time

Algunas de las respuestas mencionan que las clases de java.time son el reemplazo moderno de las problemáticas y viejas clases heredadas de fecha y hora incluidas con las primeras versiones de Java. A continuación hay un poco más de información.

Zona horaria

Las otras respuestas no explican cómo un huso horario es crucial para determinar la fecha y la hora actuales. Para cualquier momento dado, la fecha y la hora varían alrededor del mundo por zona. Por ejemplo, unos minutos después de la medianoche es un nuevo día en París, Francia, mientras que todavía está “ayer” en Montreal Québec .

Instant

Gran parte de la lógica de su negocio y el almacenamiento / intercambio de datos deben realizarse en UTC , como una práctica recomendada. Para obtener el momento actual en UTC con una resolución en nanosegundos , use la clase Instant .

 Instant instant = Instant.now(); 

ZonedDateTime

Puede ajustar ese Instant en otras zonas horarias. Aplique un objeto ZoneId para obtener un ZonedDateTime .

 ZoneId z = ZoneId.of( "America/Montreal" ); ZonedDateTime zdt = instant.atZone( z ); 

Podemos omitir el Instant y obtener el ZonedDateTime actual directamente.

 ZonedDateTime zdt = ZonedDateTime.now( z ); 

Siempre pase ese argumento de zona horaria opcional. Si se omite, se aplica la zona horaria predeterminada actual de su JVM. El valor predeterminado puede cambiar en cualquier momento, incluso durante el tiempo de ejecución. No someta su aplicación a una externalidad fuera de su control. Siempre especifique la zona horaria deseada / esperada.

 ZonedDateTime do_Not_Do_This = ZonedDateTime.now(); // BAD - Never rely implicitly on the current default time zone. 

Luego puede extraer un Instant desde ZonedDateTime .

 Instant instant = zdt.toInstant(); 

Siempre use Instant o ZonedDateTime lugar de LocalDateTime cuando desee un momento real en la línea de tiempo. Los tipos Local… no tienen el concepto de zona horaria a propósito, por lo que representan solo una idea aproximada de un posible momento. Para obtener un momento real, debe asignar un huso horario para transformar los tipos Local… en un ZonedDateTime y así hacerlo significativo.

LocalDate

La clase LocalDate representa un valor de solo fecha sin hora del día y sin zona horaria.

 ZoneId z = ZoneId.of( "America/Montreal" ); LocalDate today = LocalDate.now( z ); // Always pass a time zone. 

Instrumentos de cuerda

Para generar una cadena que represente el valor de la fecha y hora, simplemente llame a String en las clases java.time para los formatos estándar ISO 8601 .

 String output = myLocalDate.toString(); // 2016-09-23 

… o …

 String output = zdt.toString(); // 2016-09-23T12:34:56.789+03:00[America/Montreal] 

La clase ZonedDateTime amplía el formato estándar añadiendo sabiamente el nombre de la zona horaria entre corchetes.

Para otros formatos, busque Desbordamiento de stack para muchas preguntas y respuestas en la clase DateTimeFormatter .

Evitar LocalDateTime

Contrario al comentario sobre la Pregunta de RamanSB, no debería usar la clase LocalDateTime para la fecha-hora actual.

El LocalDateTime deliberadamente carece de cualquier zona horaria o información de desplazamiento de UTC. Entonces, esto no es apropiado cuando estás rastreando un momento específico en la línea de tiempo. Ciertamente no es apropiado para capturar el momento actual.

La redacción “Local” es contra intuitiva. Significa cualquier localidad en lugar de cualquier localidad específica. Por ejemplo, la Navidad de este año comienza a la medianoche del 25 de diciembre: 2017-12-25T00:00:00 , para que se represente como LocalDateTime . Pero esto significa medianoche en varios puntos del mundo en diferentes momentos. La medianoche ocurre primero en Kiribati , más tarde en Nueva Zelanda, horas más tarde en la India, y así sucesivamente, con varias horas más antes de que comience la Navidad en Francia, cuando los niños en Canadá todavía están esperando ese día. Cada uno de estos puntos de inicio de Navidad se representaría como un ZonedDateTime separado.


Desde fuera de tu sistema

Si no puede confiar en el reloj de su sistema, consulte Java: Obtenga la fecha y hora actual del servidor, no del reloj del sistema y mi respuesta .

foto de un par de dispositivos externos de reloj de radio

java.time.Clock

Para aprovechar un proveedor alternativo del momento actual, escriba una subclase de la clase abstracta java.time.Clock .

Puede pasar su implementación de Clock como argumento a los diversos métodos de java.time . Por ejemplo, Instant.now( clock ) .

 Instant instant = Instant.now( yourClockGoesHere ) ; 

Para fines de prueba, tenga en cuenta las implementaciones alternativas de Clock disponibles estáticamente desde el Clock : fixed , offset , tick y más.


Acerca de java.time

El marco java.time está integrado en Java 8 y posterior. Estas clases suplantan a las problemáticas antiguas clases heredadas de fecha y hora como java.util.Date , Calendar y SimpleDateFormat .

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. Use un controlador JDBC que cumpla con JDBC 4.2 o posterior. Sin necesidad de cadenas, sin necesidad de clases java.sql.* .

¿Dónde obtener las clases de java.time?

  • Java SE 8 , Java SE 9 y posterior
    • Incorporado.
    • Parte de la API Java estándar con una implementación integrada.
    • Java 9 agrega algunas características y correcciones menores.
  • Java SE 6 y Java SE 7
    • Gran parte de la funcionalidad de java.time se transfiere a Java 6 y 7 en ThreeTen-Backport .
  • Androide
    • Versiones posteriores de las implementaciones del paquete de Android de las clases java.time.
    • Para Android anterior, el proyecto ThreeTenABP adapta ThreeTen-Backport (mencionado anteriormente). Consulte Cómo utilizar ThreeTenABP ….

El proyecto ThreeTen-Extra amplía java.time con clases adicionales. Este proyecto es un terreno de prueba para posibles adiciones futuras a java.time. Puede encontrar algunas clases útiles aquí, como Interval , YearWeek , YearQuarter y más .

Hay muchos métodos diferentes:

  • System.currentTimeMillis ()
  • Fecha
  • Calendario

Crea el objeto de la fecha y simplemente imprímelo.

 Date d = new Date(System.currentTimeMillis()); System.out.print(d); 

¿Has mirado java.util.Date? Es exactamente lo que quieres.

Similar a las soluciones anteriores. Pero siempre me encuentro buscando este trozo de código:

 Date date=Calendar.getInstance().getTime(); System.out.println(date); 
 java.util.Date date = new java.util.Date(); 

Se rellena automáticamente con el momento en que se crea una instancia.

Encuentro que esta es la mejor manera:

 DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); Calendar cal = Calendar.getInstance(); System.out.println(dateFormat.format(cal.getTime())); // 2014/08/06 16:00:22 

Primero entiende la clase java.util.Date

1.1 Cómo obtener la fecha actual

 import java.util.Date; class Demostration{ public static void main(String[]args){ Date date = new Date(); // date object System.out.println(date); // Try to print the date object } } 

1.2 Cómo usar el método getTime ()

 import java.util.Date; public class Main { public static void main(String[]args){ Date date = new Date(); long timeInMilliSeconds = date.getTime(); System.out.println(timeInMilliSeconds); } } 

Esto devolverá el número de milisegundos desde el 1 de enero de 1970, 00:00:00 GMT para fines de comparación de tiempo.

1.3 Cómo formatear el tiempo usando la clase SimpleDateFormat

 import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; class Demostration{ public static void main(String[]args){ Date date=new Date(); DateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd"); String formattedDate=dateFormat.format(date); System.out.println(formattedDate); } } 

También intente usar diferentes patrones de formato como “aaaa-MM-dd hh: mm: ss” y seleccione el patrón deseado. http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

Comprende la clase java.util.Calendar

2.1 Usar la clase de calendario para obtener la marca de tiempo actual

 import java.util.Calendar; class Demostration{ public static void main(String[]args){ Calendar calendar=Calendar.getInstance(); System.out.println(calendar.getTime()); } } 

2.2 Pruebe usar setTime y otros métodos de configuración para establecer el calendario en una fecha diferente.

Fuente: http://javau91.blogspot.com/

Utilizar:

 SimpleDateFormat sdf = new SimpleDateFormat("yyyy:MM:dd::HH:mm:ss"); System.out.println(sdf.format(System.currentTimeMillis())); 

La instrucción de impresión imprimirá la hora en que se llama y no cuando se creó SimpleDateFormat . Por lo tanto, se puede invocar repetidamente sin crear ningún objeto nuevo.

Para java.util.Date, solo crea una nueva fecha ()

 DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); Date date = new Date(); System.out.println(dateFormat.format(date)); //2016/11/16 12:08:43 

Para java.util.Calendar, usa Calendar.getInstance ()

 DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); Calendar cal = Calendar.getInstance(); System.out.println(dateFormat.format(cal)); //2016/11/16 12:08:43 

Para java.time.LocalDateTime, usa LocalDateTime.now ()

 DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss"); LocalDateTime now = LocalDateTime.now(); System.out.println(dtf.format(now)); //2016/11/16 12:08:43 

Para java.time.LocalDate, usa LocalDate.now ()

 DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd"); LocalDate localDate = LocalDate.now(); System.out.println(dtf.format(localDate)); //2016/11/16 

Referencia: https://www.mkyong.com/java/java-how-to-get-current-date-time-date-and-calender/

Echa un vistazo a la clase Date . También está la clase Calendar más nueva, que es el método preferido para realizar muchas operaciones de fecha / hora (muchos de los métodos de Date han quedado en desuso).

Si solo desea la fecha actual, cree un nuevo objeto Date o llame a Calendar.getInstance(); .

Como se mencionó, la Fecha básica () puede hacer lo que necesita en términos de obtener la hora actual. En mi experiencia reciente trabajando fuertemente con las fechas de Java, hay muchas rarezas con las clases incorporadas (así como la desaprobación de muchos de los métodos de la clase Date). Una rareza que me llamó la atención fue que los meses están basados ​​en índices que desde un punto de vista técnico tienen sentido, pero en términos reales pueden ser muy confusos.

Si solo le preocupa la fecha actual, esto debería ser suficiente; sin embargo, si tiene la intención de realizar una gran cantidad de manipulaciones / cálculos con fechas, podría ser muy beneficioso usar una biblioteca de terceros (existen muchos porque muchos desarrolladores de Java no están satisfechos con la funcionalidad incorporada).

Apoyo la recomendación de Stephen C ya que he encontrado que Joda-time es muy útil para simplificar mi trabajo con las fechas, también está muy bien documentado y puedes encontrar muchos ejemplos útiles en toda la web. Incluso terminé escribiendo una clase contenedora estática (como DateUtils) que utilizo para consolidar y simplificar toda mi manipulación común de fechas.

 import java.util.*; import java.text.*; public class DateDemo { public static void main(String args[]) { Date dNow = new Date( ); SimpleDateFormat ft = new SimpleDateFormat ("E yyyy.MM.dd 'at' hh:mm:ss a zzz"); System.out.println("Current Date: " + ft.format(dNow)); } } 

puede usar la fecha para los datos actuales de fet. entonces usando SimpleDateFormat obtener formato

  System.out.println( new SimpleDateFormat("yyyy:MM:dd - hh:mm:ss a").format(Calendar.getInstance().getTime()) ); //2018:02:10 - 05:04:20 PM 

fecha / hora con AM / PM

Puede usar el objeto Date y el formato usted mismo. Es difícil formatear y necesita más códigos, por ejemplo,

 Date dateInstance = new Date(); int year = dateInstance.getYear()+1900;//Returns:the year represented by this date, minus 1900. int date = dateInstance.getDate(); int month = dateInstance.getMonth(); int day = dateInstance.getDay(); int hours = dateInstance.getHours(); int min = dateInstance.getMinutes(); int sec = dateInstance.getSeconds(); String dayOfWeek = ""; switch(day){ case 0: dayOfWeek = "Sunday"; break; case 1: dayOfWeek = "Monday"; break; case 2: dayOfWeek = "Tuesday"; break; case 3: dayOfWeek = "Wednesday"; break; case 4: dayOfWeek = "Thursday"; break; case 5: dayOfWeek = "Friday"; break; case 6: dayOfWeek = "Saturday"; break; } System.out.println("Date: " + year +"-"+ month + "-" + date + " "+ dayOfWeek); System.out.println("Time: " + hours +":"+ min + ":" + sec); 

salida:

 Date: 2017-6-23 Sunday Time: 14:6:20 

Como puede ver, esta es la peor forma en que puede hacerlo y, según la documentación de Oracle, está en desuso .

Documento de Oracle:

La clase Date representa un instante específico en el tiempo, con una precisión de milisegundos.

Antes de JDK 1.1, la clase Date tenía dos funciones adicionales. Permitió la interpretación de las fechas como valores de año, mes, día, hora, minuto y segundo. También permitió el formateo y el análisis de cadenas de fechas. Desafortunadamente, la API para estas funciones no era susceptible de internacionalización. A partir de JDK 1.1, la clase Calendar se debe usar para convertir entre campos de fechas y de tiempo, y la clase DateFormat se debe usar para formatear y analizar cadenas de fechas. Los métodos correspondientes en Fecha están en desuso.

Entonces, alternativamente, puedes usar la clase Calendar ,

 Calendar.YEAR; //and lot more 

Para obtener la hora actual, puede usar:

 Calendar rightNow = Calendar.getInstance(); 

Doc:

Al igual que otras clases sensibles a la configuración regional, Calendar proporciona un método de clase, getInstance , para obtener un objeto generalmente útil de este tipo. El método getInstance de Calendar devuelve un objeto de calendario cuyos campos de calendario se han inicializado con la fecha y hora actual

Debajo del código para obtener solo la fecha

 Date rightNow = Calendar.getInstance().getTime(); System.out.println(rightNow); 

Además, la clase Calendar tiene Subclases. GregorianCalendar es una de ellas y una subclase concreta de Calendar y proporciona el sistema de calendario estándar utilizado por la mayor parte del mundo.

Ejemplo usando GregorianCalendar :

 Calendar cal = new GregorianCalendar(); int hours = cal.get(Calendar.HOUR); int minute = cal.get(Calendar.MINUTE); int second = cal.get(Calendar.SECOND); int ap = cal.get(Calendar.AM_PM); String amVSpm; if(ap == 0){ amVSpm = "AM"; }else{ amVSpm = "PM"; } String timer = hours + "-" + minute + "-" + second + " " +amVSpm; System.out.println(timer); 

Puede usar SimpleDateFormat , forma simple y rápida de formatear la fecha:

 String pattern = "yyyy-MM-dd"; SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern); String date = simpleDateFormat.format(new Date()); System.out.println(date); 

Lea este tutorial de Jakob Jenkov: Java SimpleDateFormat .

Como otros mencionaron, cuando necesitamos manipular las fechas, no teníamos la mejor manera simple o no podíamos satisfacer las clases integradas, API.

Como ejemplo, cuando necesitamos diferenciar entre dos fechas , cuando necesitamos comparar dos fechas (hay un método integrado también para esto) y muchas más. Tuvimos que usar bibliotecas de terceros. Una de las buenas y populares es Joda Time.

Lea también:

  • ¿Cómo obtener la fecha y hora correctas en Joda-Time?
  • JodaTime: cómo obtener la hora actual en UTC
  • Ejemplos para JodaTime .
  • Descargar Joda

. Lo más feliz es ahora (en java 8), nadie necesita descargar y usar bibliotecas por ningún motivo. Un ejemplo simple para obtener la fecha y hora actual en Java 8,

 LocalTime localTime = LocalTime.now(); System.out.println(localTime); //with time zone LocalTime localTimeWtZone = LocalTime.now(ZoneId.of("GMT+02:30")); System.out.println(localTimeWtZone); 

Una de las buenas publicaciones del blog sobre la fecha de Java 8 .

Y recuerde que para obtener más información sobre la fecha y la hora de Java, existen muchas maneras y / o maneras más útiles de obtener / usar.

  • Tutoriales de Oracle para fecha y hora .
  • Tutoriales de Oracle para formateador .
  • Lección: Calendario estándar.

EDITAR:

De acuerdo con el comentario de @BasilBourque, las viejas clases problemáticas de fecha y hora, como java.util.Date , java.util.Calendar y java.text.SimpleTextFormat ahora son heredadas , suplantadas por las clases java.time .

La nueva API de Data-Time se presenta con el inicio de Java 8. Esto se debe a los siguientes problemas que se produjeron en la antigua API de tiempo de datos.

Difícil de manejar zona horaria: necesita escribir gran cantidad de código para tratar con las zonas horarias.

No hilo seguro: java.util.Date no es seguro para subprocesos.

Así que echa un vistazo con Java 8

 import java.time.LocalDate; import java.time.LocalTime; import java.time.LocalDateTime; import java.time.Month; public class DataTimeChecker { public static void main(String args[]) { DataTimeChecker dateTimeChecker = new DataTimeChecker(); dateTimeChecker.DateTime(); } public void DateTime() { // Get the current date and time LocalDateTime currentTime = LocalDateTime.now(); System.out.println("Current DateTime: " + currentTime); LocalDate date1 = currentTime.toLocalDate(); System.out.println("Date : " + date1); Month month = currentTime.getMonth(); int day = currentTime.getDayOfMonth(); int seconds = currentTime.getSecond(); System.out.println("Month : " + month); System.out.println("Day : " + day); System.out.println("Seconds : " + seconds); LocalDateTime date2 = currentTime.withDayOfMonth(17).withYear(2018); System.out.println("Date : " + date2); //Prints 17 May 2018 LocalDate date3 = LocalDate.of(2018, Month.MAY, 17); System.out.println("Date : " + date3); //Prints 04 hour 45 minutes LocalTime date4 = LocalTime.of(4, 45); System.out.println("Date : " + date4); // Convert to a String LocalTime date5 = LocalTime.parse("20:15:30"); System.out.println("Date : " + date5); } } 

Salida de la encoding anterior:

 Current DateTime: 2018-05-17T04:40:34.603 Date : 2018-05-17 Month : MAY Day : 17 Seconds : 34 Date : 2018-05-17T04:40:34.603 Date : 2018-05-17 Date : 04:45 Date : 20:15:30 

Continuaré y presentaré esta respuesta porque es todo lo que necesitaba cuando tuve la misma pregunta:

 Date currentDate = new Date(System.currentTimeMillis()); 

currentDate ahora es su fecha actual en un objeto Java Date .