2014-07-21 10 views
2

1405936049의 unix_timestamp는 2014-07-21 09:47:29에 해당합니다. 내 목표는 타임 스탬프에서 후자의 형식을 파생시키는 것입니다. 2014-07-21 02:47:29을, 의미가있는 time.Unix(1405936049, 0)주는 가입일 : 산출유닉스 타임 스탬프 형식 변환

fmt.Println(time.Unix(1405936049, 0).Format("2006-01-02 15:04:05")) 

가 : 2014-07-21 02:47:29 -0700 PDT (명확하게하기 위해, 내가 원하는 : 2014-07-

형식의 문서를 읽은 후, 다음은 함께했다 21 09:47:29, 시간이 잘못되었습니다).

올바른 용어를 알고 있다면 문서에서 해결책을 찾을 수 있지만이 시점에서는 파서에게 -0700 또는 대안을 설명하는 방법을 알지 못합니다. 해결책은 time.Unix() 외에 다른 것을 사용하는 것이므로 결과 시간이 이미 시간 차이를 설명했을 것입니다. 어떤 도움을 주시면 감사하겠습니다.

+0

그러나 http://play.golang.org/p/cyeh8MQYUy 이미 당신에게'09 줄 29'가 아닌'2시 47분 29초을 ' – VonC

+0

@VonC : "놀이터에서 시간은 2009-11-10 23:00:00 UTC부터 시작됩니다." [Go Playgroud : 정보] (http://play.golang.org/) – peterSO

답변

3

로컬 PDT 시간이 아니라 UTC 시간이 필요합니다. 예를 들어,

package main 

import (
    "fmt" 
    "time" 
) 

func main() { 
    fmt.Println(time.Unix(1405936049, 0).UTC().Format("2006-01-02 15:04:05")) 
} 

는 출력 : 47 :

2014-07-21 09:47:29 
0

당신은 이것에 대한 Location을 사용할 수 있습니다

loc, _ := time.LoadLocation("Europe/Paris") 
fmt.Println(time.Unix(1405936049, 0).In(loc).Format("2006-01-02 15:04:05")) 

나는 당신이 원하는 위치가 "UTC"라고 생각하지만 (그렇지 않으면, 여기 a list of all available locations입니다) 확인할 수 있습니다. 놀이터에서 형식이 이미 09:47:29 인 이유는 playground does not include locations이며 기본적으로 UTC를 사용합니다.

관련 문제