Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby-DateTime用于数据库_Ruby_Database_Datetime_Date - Fatal编程技术网

Ruby-DateTime用于数据库

Ruby-DateTime用于数据库,ruby,database,datetime,date,Ruby,Database,Datetime,Date,我有一个语法为“0000-00-00:00:00”的数据库列。 在PHP中,我会这样做 日期(“Y-m-d H:i:s”) 在Ruby,我喜欢 require 'date' now = DateTime::now() puts "#{now.year()}-#{now.mon()}-#{now.mday()} #{now.hour()}:#{now.min()}:#{now.sec()}" 结果是: "2010-1-5 10:16:4" 那不好。如何创建格式为“0000-00-00:00:00

我有一个语法为“0000-00-00:00:00”的数据库列。 在PHP中,我会这样做 日期(“Y-m-d H:i:s”)

在Ruby,我喜欢

require 'date'
now = DateTime::now()
puts "#{now.year()}-#{now.mon()}-#{now.mday()} #{now.hour()}:#{now.min()}:#{now.sec()}"
结果是: "2010-1-5 10:16:4" 那不好。如何创建格式为“0000-00-00:00:00”的“时间字符串”


非常感谢您的光临和问候

由于内置的
Time
类,您可以像在PHP中一样格式化日期,请参阅文档

这将为您的案例提供:

t = Time.now
puts t.strftime("%Y-%m-%d %H:%M:%S")
稍微短一点

t = Time.now
puts t.strftime("%F %T")

=> "2015-01-06 14:01:05" 

iso8601方法也很有用:

>> Time.now.utc.iso8601
=> "2015-05-08T16:45:22Z"

ActiveRecord倾向于将日期/时间存储为UTC,因此使用
UTC
将使数据更加一致

t = Time.now.utc
puts t.strftime("%F %T")

=> "2016-05-06 19:05:01"

如果您使用的是Rails/ActiveSupport,那么将是最短的方式:

Time.now.to_s(:db)
=> "2017-05-22 11:14:40"
另见