ruby - 在 ruby​​ 模型中设置日期格式(sinatra/datamapper)

标签 ruby date sinatra datamapper

我有一个包含日期属性的 ruby​​ 模型,我希望能够以 dd/MM/yyyy 格式将其作为参数传入。

但是,我的 sqlite3 数据库以 yyyy-MM-dd 格式存储数据,因此当传入像 20/10/2010 这样的日期时,它不会被读取到数据库中。

我正在使用 Sinatra 框架并使用 haml 来创建标记。

我是否需要编写一个助手来获取日期字符串并将其转换为数据库的正确格式?或者我可以在模型属性上设置格式类型吗?

谢谢。

最佳答案

您不必担心数据库对日期的内部表示; DataMapper 可以为您做到这一点。您只需要确保向它传递一个有效的 Date 对象。

查看 http://ruby-doc.org/core/classes/Date.html Date 类可用的方法。对于您的示例:

require 'date'
mydate = '20/10/2010'
mydate_obj = Date::strptime(mydate, '%d/%m/%Y')
puts "#{mydate_obj}" # prints 2010-10-20

关于ruby - 在 ruby​​ 模型中设置日期格式(sinatra/datamapper),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2964283/

相关文章:

bash - 测试变量是否是格式正确的日期

ruby - sinatra 瘦应用程序滞后问题

ruby-on-rails - HTTParty 使用 http 基本身份验证给出 401

javascript - axios POST 请求(javascript)和 Sinatra/Base API(ruby)的问题

Django 1.8 & Django Crispy Forms : Is there a simple, 实现日期选择器的简单方法?

ruby-on-rails - rails 太阳黑子/Solr : Ordering on multiple-value field

ruby-on-rails - SSL_connect returned=1 errno=0 state=SSLv3 读取服务器证书 B : certificate verify failed on Mac

ruby-on-rails - 无法从类内部访问私有(private)方法?

PHP 日期和时间 : Get next tuesday with 7 days between

ruby - 如何在 Ruby 中生成唯一的六位字母数字代码