Playframework 中的日期

标签 date jpa playframework

我的模型有日期信息:

package models;
import java.util.Date;
import javax.persistence.*;

import play.data.binding.As;
import play.db.jpa.*;
@Entity
public class testing extends Model {
…
public  Date date;
// I even tried public @As("yyyy-MM-dd") Date date;

…
public test1 {…date…}
}

然后我有一个 Controller 接收用户提交的日期(和其他信息),保存到数据库

public static void post(… @As("yyyy-MM-dd") Date date, …) {
}

其他信息效果很好,我可以将它们全部保存在数据库中,除了日期。运行后,所有信息都post到MySql中,但Date字段还是Null

controller中date的调试信息如下: 2011 年 11 月 7 日 12:00:00 所以我认为这可能是 Controller 和模型类型的冲突。但是怎么办? 请帮助我。

最佳答案

我正在使用 Play 1.2.3/1.2.4-RC2,

它可以正确处理日期发布,但我做了 2 个小调整:

1) 在日期声明之前添加@Temporal(TemporalType.DATE)。没有它,日期就是时间戳(日期包括时间),但我认为这不是问题:

...
@Entity
public class Testing extends Model {
  ...
  @Temporal(TemporalType.DATE)
  public Date date;
  ...
}

2) 在 application.conf 中,我为我的所有语言环境配置了日期格式

...
# Date format
# ~~~~~
date.format=yyyy-MM-dd
date.format.it=dd/MM/yyyy
date.format.en=MM/dd/yyyy
date.format.fr=dd/MM/yyyy
#

正确 Play 帖子日期并主要根据当前语言环境正确验证参数(例如 Long/Integer/Float/Double/BigDecimal/Date)。

希望这对您有所帮助。

关于Playframework 中的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8033014/

相关文章:

arrays - 将不同格式的 'dates' 转换为 ruby​​ 中的特定格式

PHP strtotime 行为

mysql - 从 MySQL 表中删除日期字段为两周或更早的行

hibernate - 当我添加 OneToMany 注释时,EntityManager 无法使用 JPA/Hibernate 进行实例化

java - 如何使用 JPA API 构造此连接查询?

gradle - gradle PlayRun任务:定义assetsDirs属性时的 “Cannot invoke method getAt() on null object”

scala - 如何从 scala play 访问发布数据?

php - 日期格式无效

java - 我如何将 Xuggler 与 Play 结合使用!框架

java - 如何编写此 JPQL 查询?