andare con Time.zone.parse se si vuole solo scrivere in ActiveRecord.
DateTime deve essere evitato. Se gestisci le date, dovresti utilizzare invece Date.parse.
Oltre a ciò, dipende dal fatto che l'input sia fornito con informazioni sul fuso orario, su quale sia il fuso orario corrente e se si desidera utilizzare i fusi orari nei dati.
Time.zone.parse restituirà un ActiveSupport :: TimeWithZone, per impostazione predefinita su UTC.
> Time.zone.parse("12:30")
=> Thu, 10 May 2012 12:30:00 UTC +00:00
Time.parse restituirà un orario, con una zona se è specificato nell'input o la TZ locale.
> Time.parse("12:30")
=> 2012-05-09 12:30:00 -0700
Per una spiegazione più dettagliata dei confronti temporali di Ruby e di precisione, leggere questo post del blog:
http://blog.tddium.com/2011/08/07/rails-time-comparisons-devil-details-etc/
fonte
2012-05-10 01:48:37
anche [questa] (http://stackoverflow.com/questions/9138515/when -should-i-use-datetime-vs-date-time-fields-in-ruby-rails) e [this] (http://stackoverflow.com/questions/1261329/whats-the-difference-between-datetime- e-time-in-ruby/1261435 # 1261435), che dice di usare DateTime quando si tratta di date o date lontane nel futuro. –