/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeFormatterBuilder;
import java.util.Locale;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
String dateString
= "2018-03-20 09:31:31";
DateTimeFormatter formatterForWrongFormat = new DateTimeFormatterBuilder()
.append(DateTimeFormatter.ISO_LOCAL_DATE)
.appendLiteral(" ")
.append(DateTimeFormatter.ISO_LOCAL_TIME)
.toFormatter();
//1- from String(wrong format) into datetime object
LocalDateTime dateTime = LocalDateTime.parse(dateString , formatterForWrongFormat);
// 1.1 extract date object (Optional)
LocalDate myDate = dateTime.toLocalDate();
// 2- now from your LocalDateTime to the String in the RIGHT format
DateTimeFormatter formatterForRightFormat = DateTimeFormatter.ofPattern("MM/dd/yyyy HH:mm:ss a",
System.
out.
println("right format: "+dateTime.
format(formatterForRightFormat
));
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgppbXBvcnQgamF2YS50aW1lLkxvY2FsRGF0ZTsKaW1wb3J0IGphdmEudGltZS5Mb2NhbERhdGVUaW1lOwppbXBvcnQgamF2YS50aW1lLmZvcm1hdC5EYXRlVGltZUZvcm1hdHRlcjsKaW1wb3J0IGphdmEudGltZS5mb3JtYXQuRGF0ZVRpbWVGb3JtYXR0ZXJCdWlsZGVyOwppbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKCi8qIE5hbWUgb2YgdGhlIGNsYXNzIGhhcyB0byBiZSAiTWFpbiIgb25seSBpZiB0aGUgY2xhc3MgaXMgcHVibGljLiAqLwpjbGFzcyBJZGVvbmUKewoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uCgl7CgkJU3RyaW5nIGRhdGVTdHJpbmcgPSAiMjAxOC0wMy0yMCAwOTozMTozMSI7CgoJCURhdGVUaW1lRm9ybWF0dGVyIGZvcm1hdHRlckZvcldyb25nRm9ybWF0ID0gbmV3IERhdGVUaW1lRm9ybWF0dGVyQnVpbGRlcigpCgkJCQkuYXBwZW5kKERhdGVUaW1lRm9ybWF0dGVyLklTT19MT0NBTF9EQVRFKQoJCQkJLmFwcGVuZExpdGVyYWwoIiAiKQoJCQkJLmFwcGVuZChEYXRlVGltZUZvcm1hdHRlci5JU09fTE9DQUxfVElNRSkKCQkJCS50b0Zvcm1hdHRlcigpOwoKCQkvLzEtIGZyb20gU3RyaW5nKHdyb25nIGZvcm1hdCkgaW50byBkYXRldGltZSBvYmplY3QKCQlMb2NhbERhdGVUaW1lIGRhdGVUaW1lID0gTG9jYWxEYXRlVGltZS5wYXJzZShkYXRlU3RyaW5nICwgZm9ybWF0dGVyRm9yV3JvbmdGb3JtYXQpOwoJCQoJCS8vIDEuMSBleHRyYWN0IGRhdGUgb2JqZWN0IChPcHRpb25hbCkKCQlMb2NhbERhdGUgbXlEYXRlID0gIGRhdGVUaW1lLnRvTG9jYWxEYXRlKCk7CgkJCgkJLy8gMi0gbm93IGZyb20geW91ciAgTG9jYWxEYXRlVGltZSB0byB0aGUgU3RyaW5nIGluIHRoZSBSSUdIVCBmb3JtYXQKCQlEYXRlVGltZUZvcm1hdHRlciBmb3JtYXR0ZXJGb3JSaWdodEZvcm1hdCA9ICBEYXRlVGltZUZvcm1hdHRlci5vZlBhdHRlcm4oIk1NL2RkL3l5eXkgSEg6bW06c3MgYSIsCiAgICAgICAgICAgICAgICBMb2NhbGUuRU5HTElTSCk7CgoJCVN5c3RlbS5vdXQucHJpbnRsbigicmlnaHQgZm9ybWF0OiAiK2RhdGVUaW1lLmZvcm1hdChmb3JtYXR0ZXJGb3JSaWdodEZvcm1hdCkpOwoJCQoJfQp9