ホームページ > バックエンド開発 > Golang > 新しいバージョンでは Go の `time.Now()` 出力に 'm= ' が含まれるのはなぜですか?

新しいバージョンでは Go の `time.Now()` 出力に 'm= ' が含まれるのはなぜですか?

Patricia Arquette
リリース: 2024-12-07 08:29:13
オリジナル
439 人が閲覧しました

Why Does Go's `time.Now()` Output Include

time.Time からの予期しない出力: "m= " 文字列の謎を解く

Go プログラムが time.Now() 関数を実行するとき、現在のタイムスタンプを取得します。このタイムスタンプのデフォルトの出力は、特に Go 1.9 のリリースにより、時間の経過とともに進化してきました。

The "m= " Enigma

Go の古いバージョンでは、時間.Now() は次の形式で文字列を出力します:

2018-07-04 12:03:07.2911671 +0530 IST
ログイン後にコピー

ただし、Go 1.9 以降では、出力は、謎の "m= " 文字列を含むように拡張されています:

2018-07-04 12:03:07.2911671 +0800 +08 m=+0.002000201
ログイン後にコピー

なぜ矛盾があるのでしょうか?これは、Go 1.9 で単調クロックのサポートが追加されたためです。 "m= " 文字列は、プログラムの開始からの単調時間を表し、浮動小数点数の秒数で表されます。

Format() を使用してフォーマットのサプライズを回避します

time.Now() のデフォルト出力に依存する代わりに、Format() 関数を使用してタイムスタンプのカスタム形式を指定することをお勧めします。例:

import (
    "fmt"
    "time"
)

func main() {
    t := time.Now()
    fmt.Println(t.Format("2006-01-02 15:04:05.000000"))
}
ログイン後にコピー

これにより、Go のバージョンに関係なく、一貫した形式でタイムスタンプが出力されます:

2018-07-04 12:03:07.2911671
ログイン後にコピー

Format() を使用すると、プログラムが常に出力することを保証できます。期待する形式のタイムスタンプ。

以上が新しいバージョンでは Go の `time.Now()` 出力に 'm= ' が含まれるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート