2 つの設定方法: 1. 固定タイムゾーン、構文「var c = time.FixedZone("CST", 8*3600)」および「time.Now().In(c).Format(」 Time ")"; 2. タイム ゾーン、構文 "var c, _ = time.LoadLocation("Asia/Shanghai")" および "time.Now().In(c).Format("time")" を読み込みます。
このチュートリアルの動作環境: Windows 7 システム、GO バージョン 1.18、Dell G3 コンピューター。
タイムゾーンの区分
世界では、イギリスのグリニッジ、ロンドンを経度 0 度の開始点としており、15 度ごとに計算されます。経度はタイム ゾーン、15 度です。子午線はタイム ゾーンの中心子午線であり、24 のタイム ゾーンに分割されます。タイム ゾーンは西から東へ経度 15 度ごとに増加し、逆に、タイム ゾーンは西へ経度 15 度ごとに減少します。中国のタイムゾーンは東8です。
#時刻形式
現在の時刻time.Now()ローカル タイム ゾーンの時刻を返します:
func main() { t := time.Now() fmt.Println(t) //2020-12-16 09:34:19.5828312 +0800 CST m=+0.004002201 }
CST 時刻
CST は、次の 4 つの異なるタイム ゾーンを表すことができます:time.Now()変換によって返された
0800 CST:
GMT + 8 = UTC + 8 = CST
単調時計と掛け時計
掛け時計は掛け時計の時間を表し、1970 年 1 月 1 日の 0:00:00 からの時間を保存します。タイムスタンプは、システムとタイミング サーバーが時間調整操作を実行するときです。この 2 秒目は 2018-1-1 00:00:00 になり、次の 2 秒目は 2017-12-31 23:59:59 になる可能性があります。Monotonic Clocks は、単調な時間を意味します。いわゆる単調とは、時間調整操作の影響を受けず、前方にのみ成長し続けることを意味します。この時間は、プロセスが開始されてからの秒数です。
time.Now()返された
m= 0.004002201 は、単調クロックを意味します
タイム ゾーン設定
指定されたタイム ゾーンが Go 言語に設定されていない場合、ローカル タイム ゾーンはtime.Now() を通じて取得されます:
func main() { t := time.Now() //返回本地时区格式 fmt.Println(t) }
タイム ゾーンを設定するには 2 つの方法があります:
1. タイム ゾーンを固定する (推奨)var cstZone = time.FixedZone("CST", 8*3600) // 东八 fmt.Println(time.Now().In(cstZone).Format("2006-01-02 15:04:05"))
var cstSh, _ = time.LoadLocation("Asia/Shanghai") // 上海 fmt.Println(time.Now().In(cstSh).Format("2006-01-02 15:04:05"))
FROM golang:alpine as build RUN apk --no-cache add tzdata //构建阶段加载时区 WORKDIR /app ADD . /app RUN CGO_ENABLED=0 GOOS=linux go build -o myapp FROM scratch as final COPY --from=build /app/myapp . ### 下面这行是新加的,复制时区相关的信息到最终镜像中,否则程序会找不到改时区 COPY --from=build /usr/share/zoneinfo /usr/share/zoneinfo ENV TZ=Asia/Shanghai //在最终阶段设置时区环境变量 CMD ["/myapp"]
以上がGo言語でタイムゾーンを設定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。