2017-10-26 4 views
0

Browsing through Ecto.DateTime이 바람직하지 않으므로 :naive_datetime을 사용하는 것이 좋습니다. 가능한 가장 정확한 표현으로 타임 스탬프를 저장하고 싶습니다. :naive_datetime이 제공하는 것을 찾을 수없는 것 같습니다. 내가 말할 수있는 바에 따르면, Ecto.DateTime은 ISO8601로 변환 가능하지만 순진한 datetime이 데이터베이스에 저장되는 방법에 대한 정보는 제공하지 않습니다. Ecto Timestamps에서 ISO8601 날짜를 사용하면

은과 같이 타임 스탬프를 생성 할 때 다른 가능한 옵션이 지정하는 것입니다 : 나는 다른 가능한 옵션의 목록을 찾을 수 없어

schema "test" do 
    field :name 
    timestamps type: :iso8601 # This doesn't work 
end 

. 나는 순진한 날짜 시간을 고수하고 있습니까?

답변

0

NaiveDateTime의 문제점은 무엇입니까? 시간은 어떻게 일까요? 서버가 "Etc/UTC"에서 실행되고 모든 설정이 완료되었는지 확인하십시오.

iso8601이 무엇인지 오해 한 것 같습니다. 그것은 단지 문자열 표현입니다. 또한, 항상 NaiveDateTimeISO8601 표현을 얻을 수 있습니다 NaiveDateTime.to_iso8601/2 하나를 사용하지 않습니다 ". 순진"

NaiveDateTime.utc_now |> NaiveDateTime.to_iso8601 
#⇒ "2017-10-27T05:15:42.355701" 

용어의 두려워하지 마십시오을 이러한 맥락에서 그 의미 아무것도 더 '는 시간대를 저장하지 않습니다. ".

+0

솔직히 말해서 나는 순진한 날짜가 무엇인지 이해하지 못합니다. 응답에서이를 지정할 수 있고 그런 식으로 서버를 설정하는 방법에 대해 설명하겠습니다. 내가 뭔가를 놓친 것 같아. 참고로 나는 약간의 시간에 민감한 데이터를 다룰 것이기 때문에 몇 초의 차이가 큰 문제이다. – rec

+0

"답변에 지정하시오"는 무엇을 의미합니까? 당신은 "순진한"이라는 단어를 두려워합니까? ** nanosecond ** 정밀도의 시스템 시계 시간입니다. – mudasobwa

+0

그래, 나는 datetime의 맥락에서 "순진한"것이 의미하는 것을 정확히 이해하지 못한다. 미안하다. – rec