Ruby에서 로컬 시스템 시간대 이름을 찾아야합니다 (TZInfo :: Timezone.all_identifiers 값 목록에서). Oracle 데이터베이스 세션 시간대를 올바르게 설정하여 데이터베이스의 표준 시간대 값을 올바르게 처리 할 수 있도록합니다.자바와 같은 방법으로 Ruby에서 현지 시간대 이름을 가져 오는 방법은 무엇입니까?
자바에서 java.util.TimeZone.getDefault(). getID() (내 컴퓨터에서 "Europe/Riga"를 반환)와 같은 값을 얻고 싶습니다. JDK 소스를 살펴 본다면이 기본 시간대를 찾는 플랫폼 별 C 함수가 있습니다.
그래서 JRuby를 사용할 때이 Java 메소드를 호출 할 수 있습니다. 하지만 MRI에서 사용할 수있는 솔루션이 필요합니다.
Time.now.zone을 사용하려고했지만 현재 일광 절약 시간인지 여부에 따라 다른 결과 (내 경우 "EET"또는 "EEST")가 반환됩니다. 따라서 일광 절약 시간제로 전환 할 때 정확히 날짜를 지정하는 앞서 언급 한 위치 형식 (예 : "유럽/리가")에 들어가야합니다.
제안 사항?
예, JRuby에서 쉽습니다. 하지만 MRI (원래 C 기반 Ruby 인터프리터)에서 동일한 결과를 얻고 싶습니다. –
MRI가 어떤 트릭이나 네이티브 호출 없이는 그렇게 할 수있는 방법이 없다고 생각합니다. 리눅스에서는 쉽다. 단지 "cat/etc/timezone"이다. – vsizikov