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 サイトの他の関連記事を参照してください。