tl; dr
LocalDateTime.parse(
"2010-01-25-12.40.35.769000" ,
DateTimeFormatter.ofPattern("uuuu-MM-dd-HH.mm.ss.SSSSSS")
)
Usando java.time
Está utilizando antiguas clases problemáticas de fecha y hora que ahora son heredadas, suplantadas por las clases java.time.
Estas clases antiguas se limitaban a rastrear milliseconds, tres dígitos de la fracción decimal. La java moderna.las clases de tiempo se resuelven en nanoseconds, para nueve dígitos de fracción decimal.
DateTimeFormatter f = DateTimeFormatter.ofPattern("uuuu-MM-dd-HH.mm.ss.SSSSSS") ;
LocalDateTime ldt = LocalDateTime.parse("2010-01-25-12.40.35.769000");
ldt.toString(): 2010-01-25T12: 40: 35,769
ISO 8601
Consejo: En lugar de inventar su propio formato para representar textualmente una fecha- valor de tiempo, se adhieren a los formatos estándar ISO 8601.
Las clases java.time usan los formatos estándar de forma predeterminada. Puede ver ese formato en el resultado anterior. El T
separa la porción de fecha de la porción de hora del día.
Sobre java.time
El marco java.time está incorporado en Java 8 y versiones posteriores. Estas clases suplantan a las viejas y problemáticas clases de fecha y hora legacy, como java.util.Date
, Calendar
, & SimpleDateFormat
.
El proyecto Joda-Time, ahora en maintenance mode, recomienda la migración a las clases java.time.
Para obtener más información, consulte el Oracle Tutorial. Y busque Stack Overflow para obtener muchos ejemplos y explicaciones. La especificación es JSR 310.
¿Dónde obtener las clases java.time?
- Java SE 8, Java SE 9, y más tarde
- incorporado.
- Parte de la API estándar de Java con una implementación integrada.
- Java 9 agrega algunas características menores y correcciones.
- Java SE 6 y Java SE 7
- Gran parte de la funcionalidad de back-java.time está portado a Java 6 & 7 en ThreeTen-Backport.
- Android
El proyecto se extiende ThreeTen-Extra 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 more.
FYI, las viejas clases problemáticas de fecha y hora como ['java.util.Date'] (https://docs.oracle.com/javase/8/docs/api/java/util/Date.html) , ['java.util.Calendar'] (https://docs.oracle.com/javase/8/docs/api/java/util/Calendar.html), y' java.text.SimpleTextFormat' son ahora [herencia ] (https://en.wikipedia.org/wiki/Legacy_system), suplantado por [java.time] (https://docs.oracle.com/javase/8/docs/api/java/time/package- summary.html) classes. Consulte [Tutorial de Oracle] (https://docs.oracle.com/javase/tutorial/datetime/TOC.html). –