Eri*_*yan 1 java parsing java-time
我需要将字符串(日期格式)转换为时间戳。
首先,我就是这样做的。
private Timestamp dateConverter(String date) {
Timestamp timestamp = null;
SimpleDateFormat dateFormat = new SimpleDateFormat("dd MMM yyyy HH:mm");
Date parsedDate = null;
try {
parsedDate = dateFormat.parse(date);
timestamp = new java.sql.Timestamp(parsedDate.getTime());
} catch (ParseException e) {
e.printStackTrace();
}
return timestamp;
}
Run Code Online (Sandbox Code Playgroud)
结果是: ParseException: Unparseable date: "16 Jan 2020 11:02"
我用另一种方式试过:
private Timestamp dateConverter(String date) {
DateTimeFormatter f = DateTimeFormatter.ofPattern("dd MMM yyyy HH:mm");
LocalDateTime ldt = LocalDateTime.parse(date , f);
return Timestamp.valueOf(ldt);
}
Run Code Online (Sandbox Code Playgroud)
此时我有内部服务器错误 DateTimeParseException: Text '16 Jan 2020 11:02' could not be parsed at index 3
你的模式不知道你的月份是什么语言,英语,法语,阿拉伯语,俄语,普通话......,要解决这个问题,你必须Locale像这样使用来帮助格式化程序:
DateTimeFormatter f = DateTimeFormatter.ofPattern("dd MMM yyyy HH:mm")
.withLocale(new Locale("us"));
LocalDateTime ldt = LocalDateTime.parse("16 Jan 2020 11:02" , f); // 2020-01-16T11:02
Run Code Online (Sandbox Code Playgroud)