【问题标题】:Save date in database in this format dd/MM/yy以这种格式 dd/MM/yy 在数据库中保存日期
【发布时间】:2013-07-02 05:03:48
【问题描述】:

是否可以在 Grails 中以dd/MM/yy 格式将日期值保存在数据库中?我知道我可以自定义视图中的格式,但我需要将值作为 json 返回,并以该格式返回 json 中的日期值。任何建议将不胜感激。

【问题讨论】:

  • 通常日期将作为Date 保存在数据库中。您可以在presentation layer 中随意格式化它。我不建议将日期保存为字符串值。
  • 最好解释一下你当前是如何生成 json 的,有人可以建议一种方法来获得你想要的格式。
  • 您使用的是哪个数据库??是 mysql 吗,那么你最终可能会选择受限

标签: java json date grails grails-orm


【解决方案1】:

在您的表示层上试试这个,不要在数据库中以这种格式节省时间。使用以下代码根据您的需要格式化时间。

    Date date = new Date( );
    SimpleDateFormat simpleFormat = new SimpleDateFormat ("dd/MM/yy"); 
    System.out.println("Date: " + simpleFormat .format(date));

但是如果你想以这种格式将数据保存在数据库中,请记住它返回一个字符串,你必须将日期以字符串格式保存在数据库中。由于很多原因,我不会推荐它。

【讨论】:

  • 谢谢。就像你在这里说的那样解决了问题。
  • 还有一种更时髦的方式。date.format('dd/MM/yy') 其中dateDate 对象
【解决方案2】:

您不应将日期存储为格式化字符串,因为您无法使用该字段执行许多操作,例如对其进行排序或比较。始终使用数据库的本机日期格式进行存储。如果你想改变格式,有很多地方可以做到,包括表示层(正如其他人所建议的)和数据库查询层。如果您想在 Java/Javascript 中进行最少的处理,请格式化查询中的日期。

【讨论】:

    【解决方案3】:

    同意其他人不应该以字符串格式保存在数据库中。要使用 Groovy 格式化日期,您可以使用 String.format() 方法。

    ​String.format('%tY-%<tm-%<td', new Date())​
    

    有关更多示例,请参阅Groovy dates documentation

    【讨论】:

      猜你喜欢
      • 2012-10-22
      • 1970-01-01
      • 2017-07-06
      • 1970-01-01
      • 2018-05-11
      • 2020-02-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多