2015-01-16 2 views
25

다른 시간대에서 현재 시간을 가져와야합니다.골란의 다른 시간대에서 현재 타임 스탬프를 얻는 방법은 무엇입니까?

현재 우리는 다음과 같은 작업을 수행 할 수 있음을 알고

t := time.Now() 
fmt.Println("Location:", t.Location(), ":Time:", t) 
utc, err := time.LoadLocation("America/New_York") 
if err != nil { 
    fmt.Println("err: ", err.Error()) 
} 
fmt.Println("Location:", utc, ":Time:", t.In(utc)) 

LoadLocation 이름이 "미국/뉴욕 '등은 IANA 시간대 데이터베이스에서 파일에 해당하는 위치 이름,로 촬영됩니다.

인도의 경우 국가 이름 또는 GMT 오프셋에 +530을 사용하면 현재 시간을보다 쉽게 ​​얻을 수 있습니까?

편집 : 주간 절감 효과도 지원하고 싶습니다.

+1

오프셋 고정 사용하는 경우가 일반적는'대륙/City'를 사용하는 것이 좋습니다, 적절한 거기있는 동안. 시간대 및 일광 절약 시간제는 정치적이며 변화합니다. 'Continent/City'를 사용하면 기본 IANA 표준 시간대 데이터베이스가 업데이트 될 때 응용 프로그램이 이러한 변경 사항을 조정할 수 있습니다. 또한 일광 절약 시간제를 제공합니다. – Schwern

답변

10

아니요, 이것이 최선의 방법입니다. 사용자 정의 LocationFixedZone을 사용하여 만들고 해당 사용자 정의 위치를 ​​사용할 수 있습니다.

FixedZone은 주어진 영역 이름과 항상 오프셋 (UTC의 동쪽 초)을 사용하는 위치를 반환합니다.

+3

감사합니다. Fabrizio! 나는 또한 일광 절약제를 지원하고 싶다. 그것에 관한 어떤 포인터라도? –

+1

사용자 정의 일광 절약 시간 설정 정의에 대해서는 잘 모르겠지만 데이터베이스의 시간대는 일광 절약 시간제를 이미 지원합니다. – MffnMn

13
//init the loc 
loc, _ := time.LoadLocation("Asia/Shanghai") 

//set timezone, 
now := time.Now().In(loc) 
+2

나는 지금 이라고 가정합니다 : = time.Now(). (loc) –

관련 문제