フォーマット定数またはカスタムフォーマットを使用して、Goで日付をフォーマットする方法を学びます
Goでは、現在の時刻は次を使用して決定できますtime.Now()
、提供time
パッケージ。
t := time.Now()
これにより、システムの現地時間が印刷されます。代わりにUTCが必要ですか?追加.UTC()
:
時間は、を使用してフォーマットできます。time.Format()
方法:
t := time.Now().UTC()
タイムスタンプが必要ですか?
t := time.Now().Unix()
カスタムフォーマットを使用する
カスタムフォーマットを使用したフォーマットの例は次のとおりです。
fmt.Println(t.Format("2006-01-02 15:04:05"))
それ2006-01-02 15:04:05
文字列が変に見えますね。今は2006年じゃない!ただし、印刷されます(執筆時点)2017-01-16 12:53:51
Goを初めて使用する場合は、次のように聞こえます。非常に奇妙な。
説明は次のとおりです。Goの時間フォーマットは独特で、他の言語で行うものとは異なります。 Goは、従来の形式で日付を印刷する代わりに、参照日を使用します20060102150405
これは無意味に見えますが、実際には理由があります。1 2 3 4 5 6
Posixでdate
コマンド:
Mon Jan 2 15:04:05 -0700 MST 2006
0 1 2 3 4 5 6
真ん中のタイムゾーンは7
(なぜ彼らが選ばなかったのかよくわかりませんMon Jan 2 03:04:05 -0600 MST 2007
、 ところで)
興味深い歴史的参照:https://github.com/golang/go/issues/444
フォーマット定数を使用する
Goはで提供しますtime
一般的に使用される形式のいくつかの便利な定数をパッケージ化します。
const (
ANSIC = "Mon Jan _2 15:04:05 2006"
UnixDate = "Mon Jan _2 15:04:05 MST 2006"
RubyDate = "Mon Jan 02 15:04:05 -0700 2006"
RFC822 = "02 Jan 06 15:04 MST"
RFC822Z = "02 Jan 06 15:04 -0700" // RFC822 with numeric zone
RFC850 = "Monday, 02-Jan-06 15:04:05 MST"
RFC1123 = "Mon, 02 Jan 2006 15:04:05 MST"
RFC1123Z = "Mon, 02 Jan 2006 15:04:05 -0700" // RFC1123 with numeric zone
RFC3339 = "2006-01-02T15:04:05Z07:00"
RFC3339Nano = "2006-01-02T15:04:05.999999999Z07:00"
Kitchen = "3:04PM"
// Handy time stamps.
Stamp = "Jan _2 15:04:05"
StampMilli = "Jan _2 15:04:05.000"
StampMicro = "Jan _2 15:04:05.000000"
StampNano = "Jan _2 15:04:05.000000000"
)
次のように使用できます。
t := time.Now()
fmt.Println(t.Format(time.ANSIC))
その他のチュートリアル:
- NGINXリバースプロキシを使用してGoサービスを提供する
- Goで構造体のコピーを作成する
- GoWebサーバーの基本
- Goでのマップタイプの並べ替え
- 一言で言えばポインタを移動します
- タグの説明に行く
- 日付と時刻のフォーマットに移動
- Goを使用したJSON処理
- 可変個引数関数に移動
- GoStringsチートシート
- GoEmptyインターフェイスの説明
- Go withVSCodeとDelveのデバッグ
- NamedGoはパラメータを返します
- Goで乱数と文字列を生成する
- Goプロジェクトのファイルシステム構造
- Goに実装された二分探索アルゴリズム
- Goでのコマンドラインフラグの使用
- GOPATHの説明
- Goでコマンドラインアプリを作成する:lolcat
- Goを使用したCLIコマンドの作成:cowsay
- Goでのシェルパイプの使用
- CLIチュートリアルに移動:フォーチュンクローン
- Goを使用してフォルダ内のファイルを一覧表示します
- Goを使用して、GitHubからリポジトリのリストを取得します
- 移動し、文字列のスライスをファイルに追加します
- 文字列をバイトスライスに変換します
- GoでローカルGitの貢献を視覚化する
- GoCPUとメモリプロファイリングの開始
- Goプログラムの「インデックス作成をサポートしていません」エラーを解決する
- Goプログラムでの実行時間の測定
- 重複するタイトルを検出するためにGoを使用してWebクローラーを構築する
- ベストプラクティスに進む:ポインターまたは値のレシーバー?
- ベストプラクティスに進む:メソッドまたは関数を使用する必要がありますか?
- データ構造の移動:設定
- マップのチートシートに移動
- Goでジェネリック型の実装を生成する
- Goデータ構造:辞書
- Goデータ構造:ハッシュテーブル
- Go throughChannelsにイベントリスナーを実装する
- Goデータ構造:スタック
- データ構造の移動:キュー
- Goデータ構造:二分探索木
- Goデータ構造:グラフ
- Goデータ構造:リンクリスト
- Goデータ構造の完全ガイド
- Go値の比較
- Goはオブジェクト指向ですか?
- GoでのSQLデータベースの操作
- Goでの環境変数の使用
- チュートリアルに進む:PostgreSQLに裏打ちされたREST API
- GoWebサーバーでのCORSの有効化
- DockerコンテナへのGoアプリケーションのデプロイ
- GoがPHP開発者として学ぶための強力な言語である理由
- 移動し、io.Reader.ReadString改行文字を削除します
- 移動、変更を監視してプログラムを再構築する方法
- 行って、日付からの月を数えます
- GoでHTTPPOSTパラメーターにアクセスする