tl; dr
LocalDateTime ldt = LocalDateTime.parse("2009-08-19 12:00:00".replace(" " , "T"));
java.time
Otras respuestas son correctas pero el uso de legado clases de fecha y hora. Esas viejas clases molestas han sido suplantadas por las clases java.time.
Su cadena de entrada está cerca del formato estándar ISO 8601. Modifique reemplazando el espacio en el medio con un T
. Luego se puede analizar sin especificar un patrón de formateo. Las clases java.time usan ISO 8601 de forma predeterminada al analizar/generar cadenas.
String input = "2009-08-19 12:00:00".replace(" " , "T");
Los datos de entrada no tienen información sobre offset-from-UTC o la zona horaria. Entonces analizamos como LocalDateTime
.
LocalDateTime ldt = LocalDateTime.parse(input);
Si por el contexto conoce el desplazamiento previsto, aplíquelo. Tal vez fue pensado para UTC (un desplazamiento de cero), donde podemos usar la constante ZoneOffset.UTC
.
OffsetDateTime odt = ldt.atOffset(ZoneOffset.UTC);
O tal vez sepa que fue diseñado para un huso horario en particular. Un huso horario es un desplazamiento más un conjunto de reglas para manejar anomalías como el horario de verano (DST).
ZonedDateTime zdt = ldt.atZone(ZoneId.of("America/Montreal"));
Sobre java.time
El marco java.time está incorporado en Java 8 y versiones posteriores. Estas clases suplantan a las antiguas clases problemáticas de fecha y hora como java.util.Date
, .Calendar
, & java.text.SimpleDateFormat
. El proyecto Joda-Time, ahora en maintenance mode, recomienda la migración a java.time.
Para obtener más información, consulte el Oracle Tutorial. Y busque Stack Overflow para obtener muchos ejemplos y explicaciones.
Gran parte de la funcionalidad java.time está de vuelta-portado a Java 6 & 7 en ThreeTen-Backport y adaptado además para Android en ThreeTenABP (ver How to use…).
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.
Desearía que la gente dejara de llamar a las cosas "extrañas" y "extrañas" siempre que cometan errores. :/ – Bombe
Lo siento. Estaba depurando el código que alguien muchos años más tarde mi senior había escrito, y esperaba poder confiar. –