최신 주간 빌드로 작업하도록 업데이트하려는 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와 일치하도록 변경
time.Now().UnixNano()
( 참조 ) 작동합니다.
여기에 다른 답변의 아이디어를 바탕으로 사람이 읽을 수있는 해석을 얻으려면 다음을 사용할 수 있습니다.
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 에서 시도해보십시오 .
Unix()
반환 값은 유형int64
입니다. 입력 할 유형int64
값을 자르는 것은 2038 년 문제int32
의 예입니다 .