3

데이터베이스에있는 테이블에 2 개의 열이 있습니다. 1은 날짜이고 1은 시간입니다. ActiveRecord를 사용하여 이들을 DateTime 객체에 결합해야합니다. 가장 좋은 방법은 뭔가요?ActiveRecord 날짜 및 시간을 날짜 시간으로 결합

1.9.3-p194 :053 > date.class 
=> Date 
1.9.3-p194 :054 > time.class 
=> Time 
1.9.3-p194 :055 > date.to_time_in_current_zone 
=> Wed, 04 Sep 2013 00:00:00 PDT -07:00 
1.9.3-p194 :056 > date.to_time_in_current_zone + time 
TypeError: not an integer 

나는 시간의 개별 필드를 추가 할 수 있으며이 작동하는 것 같다 : 밀리 초를 포함하지 않는

1.9.3-p194 :062 > date.to_time_in_current_zone + time.hour.hours + time.min.minutes + time.sec.seconds 
=> Wed, 04 Sep 2013 12:30:00 PDT -07:00 

Time (밀리 초)을하지 않는 이유는 무엇입니까? 밀리 세컨드를 가질 수 없다면 세상 끝은 아니지만 더 좋은 방법이 있을까요?

+1

이렇게하면? http://stackoverflow.com/questions/12181444/ruby-combine-date-and-time-objects-into-a-datetime – Luke

+0

@ 루크 - 비슷한, 내 질문에 대한 레일즈의 '날짜'와'시간'입니다. Ruby가 지원하지 않는다면 Rails가 이것을 지원하는 메커니즘을 가지고 있다고 상상했을 것입니다. –

+0

Rails 문서를 빠르게 열람하면 (http://api.rubyonrails.org/classes/DateTime.html, http://api.rubyonrails.org/classes/Date.html, http : //api.rubyonrails.org/classes/Time.html). – Luke

답변

10

실제로 중간에 들여다 죄송합니다. 8 개월 전쯤에 나는 조금 새 것이 었습니다. 그 사람은 큰 사람들 사이에서 이야기하는 것과 같습니다. 나는 또한이 같은 문제에 직면했다, 나는 그것의 옳고 그름하지만 내 문제가 해결 된 경우 내가 알고 해달라고

date_time= (date.to_s + " " +time.to_s).to_datetime 

를 사용하여이에서를 타고있어. Plz은이 Time%L 형식 지시어로 #strftime를 통해 액세스 할 수 있습니다 (밀리 초)을 가지고,이 또한

:)에 대해 나에게 피드백을 제공 할 수. 또한 초의 작은 분수 부분은 %N을 사용하여 액세스 할 수 있습니다.

+0

Mr. Questioner 내 대답이 맞다면 뭐든지간에 나에 대한 피드백을주세요 : P –

1
merged_datetime = DateTime.new(date_to_merge.year, date_to_merge.month, 
           date_to_merge.day, time_to_merge.hour, 
           time_to_merge.min, time_to_merge.sec) 
관련 문제