tl; dr
java.time.LocalDateTime.parse(
"" ,
DateTimeFormatter.ofPattern("MMdduuHHmmss")
).format(
DateTimeFormatter.ofPattern("MM-dd-uu HH-mm-ss")
)
01-23-18 12-34-56
java.time
El enfoque moderno utiliza las clases java.time .
Defina un patrón de formato para que coincida con su cadena de entrada.
DateTimeFormatter f = DateTimeFormatter.ofPattern("MMdduuHHmmss") ;
Su año de dos dígitos se interpretará como del siglo 21 (20xx).
Analizar como LocalDateTime
porque su cadena de entrada carece de cualquier indicador de zona horaria o desplazamiento desde UTC.
LocalDateTime ldt = LocalDateTime.parse("" , f) ;
ldt.toString(): 2018-01-23T12: 34: 56
generar una cadena en el formato deseado.
DateTimeFormatter fOut = DateTimeFormatter.ofPattern("MM-dd-uu HH-mm-ss") ;
String output = ldt.format(fOut );
01-23-18 12-34-56
ISO 8601
Ambos de sus formatos son terribles, por múltiples razones.
Al serializar valores de fecha y hora, utilice los formatos estándar ISO 8601 siempre que sea posible.Están diseñados para ser prácticos, fáciles de analizar por máquina, fáciles de leer por los humanos en todas las culturas.
Para un tiempo de fecha y hora como el suyo, el T
en el medio separa la porción de fecha de la parte de la hora del día.
2018-01-23T12: 34: 56
Sobre java.time
El marco java.time está integrado en Java 8 y versiones posteriores. Estas clases suplantan a las viejas y problemáticas clases de fecha y hora de 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
- Las versiones posteriores de las implementaciones de haces de Android de las clases java.time.
- Para Android anterior, el proyecto ThreeTenABP se adapta a ThreeTen-Backport (mencionado anteriormente). Ver How to use ThreeTenABP….
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.
solicitud suave.puede enviar un ejemplo. – Manu
¿Ya lo hizo? – BalusC
Supongo que se refiere a un ejemplo usando Joda Time ... – Fortega