[unix] Go 언어로 Unix 타임 스탬프 얻기 (기원 이후 현재 시간 (초))

최신 주간 빌드로 작업하도록 업데이트하려는 Go로 작성된 코드가 있습니다. (마지막으로 r60에서 지어졌습니다). 이제 다음 비트를 제외하고 모든 것이 작동합니다.

 if t, _, err := os.Time(); err == nil {
   port[5] = int32(t)
 }

현재 Go 구현에서 작동하도록 업데이트하는 방법에 대한 조언이 있습니까?



답변

import "time"
...
port[5] = int32(time.Now().Unix())


답변

원하는 경우 다음 string을 통해 변환하십시오 strconv.

package main

import (
    "fmt"
    "strconv"
    "time"
)

func main() {
    timestamp := strconv.FormatInt(time.Now().UTC().UnixNano(), 10)
    fmt.Println(timestamp) // prints: 1436773875771421417
}


답변

또 다른 팁. time.Now().UnixNano()(godoc) 은 시대 이후로 나노초를 제공합니다. 엄밀히 말하자면 유닉스 시간은 아니지만 동일한 시대를 사용하여 초 미만의 정밀도를 제공하므로 편리 할 수 ​​있습니다.

편집 : 현재 golang api와 일치하도록 변경


답변

여기에 다른 답변의 아이디어를 바탕으로 사람이 읽을 수있는 해석을 얻으려면 다음을 사용할 수 있습니다.

package main

import (
    "fmt"
    "time"
)

func main() {
    timestamp := time.Unix(time.Now().Unix(), 0)
    fmt.Printf("%v", timestamp) // prints: 2009-11-10 23:00:00 +0000 UTC
}

Go Playground 에서 시도해보십시오 .


답변