2011-05-03 4 views
2

기본적으로 DataMapper는 PostgreSQL에 timestamp without time zone 유형의 DateTime 속성을 만듭니다. 내 프로젝트의 기본값을 timestamp with time zone으로 변경하고 싶습니다. 어떻게 할 수 있습니까?DateTime 속성에 대해 "표준 시간대가있는 시간 스탬프"를 사용하도록 DataMapper에 지시하려면 어떻게합니까?

+1

데이터베이스에서 UTC를 사용하고 TZ 항목을 디스플레이 레이어에 남기지 않는 이유가 있습니까? –

+0

나는 그걸 좋아할 것이지만, 내 설치를 위해 그것을 작동시키는 방법을 찾지 못했습니다. 내 웹 서버 OS 시간이 PST로 설정됩니다. 나는 조금 파고하고 반환되는 시간대 오프셋이 없으면 DataObjects 드라이버는 (내 경우에는) 시간이 현지 시간으로 반환되고 있다고 가정합니다. 예를 들어, 데이터베이스가 '2011-4-20 10:00'과 같은 값을 반환하면 DataObjects는 로컬 시스템의 오프셋을 실제로 추가하여 '2011-4-20 10:00 -0700'과 같은 값을 부여합니다. 그래서 내 UTC 시간이 데이터베이스에서 올바르게 나오지만 잘못된 오프셋이 발생합니다. – Larsenal

+0

그래서 문제는 바보가되어 방해가되지 않아야 할 때 영리하고 도움이되는 라이브러리입니다. 또는 DataMapper가 UTC로되어 있거나 시간대의 지저분한 손을 함께 유지하고 있으면 좋을까요? –

답변

1

그냥 설정 ENV [ 'TZ'] = '시간대'

1

일부 JRuby를 사용자가 통과 단지의 경우 :

당신은 ENV [ 'TZ'] = '시간대'를 설정해야하고

org.joda.time.DateTimeZone.setDefault(org.joda.time.DateTimeZone.forID('your timezone')) 

'UTC'가 제대로 작동합니다. 다른 시간대의 경우 joda-time을 파헤쳐 야 할 수도 있습니다.

관련 문제