我使用Spring Boot编写了一个REST服务。 REST服务正在PaaS上运行。我有一个端点在数据库表中创建新项目。每次创建新项目时,我都会使用以下命令为其指定创建日期:
LocalDate currentDate = LocalDate.now();
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd");
sql = "INSERT INTO my_table (" +
"code, " +
"description, " +
"created_date)" +
"VALUES (?, ?, ?)";
jdbcTemplate.update(
sql,
new Object[]{
code,
description,
currentDate.format(df)
}
);
问题是currentDate.format(df)
将于2017年10月17日发布,而今天是2017年10月24日。我可以看到10月17日的唯一连接是,这是我最后一次重新启动{ PaaS上的{1}}文件。我JAR
进入运行服务的环境并运行SSH
。它返回date
。我有什么想法吗?
答案 0 :(得分:4)
根据你所说的我猜你的问题是你的节目在你的节目开始时初始化,然后你继续保存相同的日期,你可能有类似的东西
LocalDate currentDate = LocalDate.now();
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd");
public void insert(String code, String description) {
sql = "INSERT INTO my_table (" +
"code, " +
"description, " +
"created_date)" +
"VALUES (?, ?, ?)";
jdbcTemplate.update(
sql,
new Object[]{
code,
description,
currentDate.format(df)
}
);
}
您应该在方法
中移动日期的实例化DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd");
public void insert(String code, String description) {
LocalDate currentDate = LocalDate.now();
sql = "INSERT INTO my_table (" +
"code, " +
"description, " +
"created_date)" +
"VALUES (?, ?, ?)";
jdbcTemplate.update(
sql,
new Object[]{
code,
description,
currentDate.format(df)
}
);
}