java字符串如何直接转LocalDateTime?
1.情景展⽰
  在实际开发过程中,可能会遇到将前端传的⽇期格式转成LocalDateTime插⼊到数据库的情况,如何将⽇期转成LocalDateTime呢?
2.原因分析
  在Java8中,⽇期类不同于以前版本的java.util.Date⼯具类,Date类可以存⽇期也可以存时间,还能存⽇期+时间,统统都能塞进去;  但java8中将⽇期与时间拆分开来,⽇期类使⽤LocalDate,时间类使⽤LocalTime,⽇期+时间,使⽤LocalDateTime;
  如果我们见⽇期塞进LocalDateTime就会报错:
  这个错误的意思就是:⽇期格式⽆法转成⽇期+时间格式。
3.解决⽅案
  既然,LocalDateTime需要时间,⽽我们⼜只有⽇期的情况下,那就只能⾃⼰伪造时间啦。
  ⽅式⼀:⼿动拼接时间00:00:00
/*
* 字符串拼接转⽇期
* @date: 2020年08⽉20⽇ 0020 15:51
* @param: date
* @param: format
* @return: java.time.LocalDateTime
*/
string转date的方法
public static LocalDateTime toLocalDateTime(String dateTime, String format) {
if (StringUtils.isEmpty(dateTime)) {
return null;
}
if (StringUtils.isEmpty(format)) {
format = "yyyy-MM-dd HH:mm:ss";
}
DateTimeFormatter df = DateTimeFormatter.ofPattern(format);
LocalDateTime ldt = LocalDateTime.parse(dateTime,df);
return ldt;
}
  调⽤
String dateStr = "2021年07⽉28⽇";
dateStr += " 00:00:00";
LocalDateTime dateTime = LocalDateTime(dateStr, "yyyy年MM⽉dd⽇ HH:mm:ss");
System.out.println(dateTime);
  执⾏结果: 
  2021-07-28T00:00
  ⽅式⼆:DateTimeFormatter设置可选匹配项默认值
/*
* ⽇期字符串按指定格式转LocalDateTime
* @attention:
* @date: 2021/7/28 15:05
* @param: dateStr ⽇期字符串
* @param: dateFormat 转换前的⽇期格式
* @return: java.time.LocalDateTime
*/
@NotNull
public static LocalDateTime toLocalDateTime(String dateStr, String dateFormat) {

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。