【问题标题】:I need to change date format from dd-MM-yyyy to yyyy-MM-DD我需要将日期格式从 dd-MM-yyyy 更改为 yyyy-MM-DD
【发布时间】:2021-08-05 10:05:18
【问题描述】:

我想在日期格式进入数据库之前更改它。

我有一个日历。我正在以dd-MM-yyyy 格式从前端发送日期。

当我以这种格式发送时:yyyy-MM-dd 一切正常。但我需要dd-MM-yyyy

我正在使用 PostgreSQL,并且我有一个属性可以用时区格式将日期存储在时间戳中

例如:我在 DB 中的日期 2021-06-11 12:58:44.000000 +00:00

我的休息控制器

  @PutMapping("/edit")
  public void editTime(@RequestBody UserDto userDto) {
   //userDto.getTime() - has this format dd-MM-yyyy
   // I understand that i need to change format here. But i don't know how 
    LocalDate date = LocalDate.parse (userDto.getTime());
    Instant currentTime = date.atStartOfDay(ZoneId.of("UTC")).toInstant();
    userService.update(userDto.getId(),currentTime);
  }

服务方式

public interface UserService {
  User update(String Id, Instant time);
}

【问题讨论】:

  • 您到底在哪里使用String 格式为dd-MM-yyyy?我看不到任何String...您正在将Instant 传递给您的userService...这一切都非常混乱。
  • 在我的例子中 userDto.getTime() 是一个字符串
  • 那你为什么打电话给userDto.getTime()?你能打电话给String吗?如果UserDto 的属性timeString,则将其设置器与java.time.format.DateTimeFormatter 一起使用:userDto.setTime(date.format(DateTimeFormatter.ofPattern("dd-MM-uuuu"))(是的,uuuu 而不是yyyy)。
  • 另一种解决方案是使用ISO 8601 format在前端和服务器之间发送,所以yyyy-MM-dd,然后在前端转换成用户喜欢的格式。跨度>

标签: java postgresql datetime


【解决方案1】:
LocalDate date = LocalDate.parse (userDto.getTime(), DateTimeFormatter.ofPattern("dd-MM-yyyy"));

如果您以这种“dd-MM-yyyy”格式传递,希望这应该可以正常工作。

https://help.gooddata.com/cloudconnect/manual/date-and-time-format.html >> 这是 Java DateTimeFormatter 模式的一个很好的链接。

【讨论】:

  • 谢谢兄弟 =) 这对我很有效。祝你有美好的一天?
  • np。将其标记为已接受,以便关闭问题。
  • 好答案,今年只需使用u 而不是y...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-29
  • 1970-01-01
相关资源
最近更新 更多