Знак-разделитель, который вы использовали для разделения года, месяца и дня, кажется неправильным. Я предлагаю вам снова ввести строку даты и времени вместо того, чтобы копировать и вставлять ее откуда-то. Я также рекомендую вам перейти с устаревшего API даты и времени на современный .
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeFormatterBuilder;
import java.util.Locale;
public class Main {
public static void main(String[] args) {
String myDate = "2020-03-01 3:15 pm";
DateTimeFormatter formatter = new DateTimeFormatterBuilder()
.parseCaseInsensitive()
.appendPattern("u-M-d h:m a")
.toFormatter(Locale.ENGLISH);
LocalDateTime ldt = LocalDateTime.parse(myDate, formatter);
System.out.println(ldt);
}
}
Вывод:
2020-03-01T15:15
Если вы по-прежнему хотите использовать устаревший API даты и времени, вы можете сделать это следующим образом:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
public class Main {
public static void main(String[] args) throws ParseException {
String myDate = "2020-03-01 3:15 pm";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd h:mm aa", Locale.ENGLISH);
Date date = sdf.parse(myDate);
System.out.println(date);
}
}
Вывод:
Sun Mar 01 15:15:00 GMT 2020
Обратите внимание, что я использовал один h
для соответствия вашей строке даты и времени.