LocalDate - 如何删除LocalDate中的字符'T'

Sky*_*leR 7 java eclipse date java-8

如何删除localDate中的T?

我需要删除'T'以匹配我的数据库中的数据.

这是我的代码

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss", Locale.US);

String strLocalDate = patientDiagnosisByDoctor.getDiagnosisDateTime().toLocalDateTime().toString();

LocalDateTime localDate = LocalDateTime.parse(strLocalDate, formatter);

System.out.println(localDate);
Run Code Online (Sandbox Code Playgroud)

我得到了这个输出:

2015-10-23T03:34:40
Run Code Online (Sandbox Code Playgroud)

删除"T"字符的最佳方法是什么?伙计们好吗?

Mad*_*mer 13

删除"T"字符的最佳方法是什么?伙计们好吗?

使用a DateTimeFormatter格式化LocalDateTime您想要的方式的值...

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss", Locale.US);

String strLocalDate = "2015-10-23T03:34:40";

LocalDateTime localDate = LocalDateTime.parse(strLocalDate, formatter);

System.out.println(localDate);
System.out.println(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(localDate));
System.out.println(DateTimeFormatter.ofPattern("HH:mm:ss yyyy-MM-dd ").format(localDate));
Run Code Online (Sandbox Code Playgroud)

哪个打印......

2015-10-23T03:34:40
2015-10-23 03:34:40
03:34:40 2015-10-23 
Run Code Online (Sandbox Code Playgroud)

请记住,日期/时间对象只是从固定时间点(如Unix时代)过去的时间量的容器,它们没有自己的内部/可配置格式,它们倾向于使用当前locale的格式.

相反,当您想要显示日期/时间值时,您应该首先使用a DateTimeFormatter将日期/时间值格式化为您想要的格式并显示

我需要删除'T'以匹配我的数据库中的数据.

奥普斯,错过了那一部分.

在这种情况下,您应该将日期/时间值转换为使用java.sql.Timestamp并使用a PreparedStatement来插入/更新它们

  • `substring()`,但你在哪里得到那个值?到目前为止没有任何显示会这样做. (2认同)
  • 仅供参考:您通常会更改格式,但在您的情况下,您不需要它,您需要使用时间戳并让数据库担心它 (2认同)
  • @Andreas为什么不只是更改格式说明符,请注意,为了在数据库中插入值,您只需要使用Timestamp并让数据库担心:P (2认同)

Mor*_*Al' 5

    String localTime = "2018-09-13 00:00:00";
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss", Locale.ENGLISH);
    LocalDateTime date = LocalDateTime.parse(localTime, formatter);
    String replace = date.toString().replace("T", " ");
    System.out.println(replace);
Run Code Online (Sandbox Code Playgroud)

2018-09-13 00:00