質問: time.Parse("2006年1月2日15時4分", hoge.CreatedAt.Format("2006年1月2日15時4分")) ``` ここで`hoge.CreatedAt`を表示しても変換前のままです。 変換前の日付 `2015-09-01 08:12:00 +0000 UTC` なぜ変換されないのでしょうか。
回答: `hoge.CreatedAt`は`time.Time型`で文字列データではなく、時刻表記のフォーマットを変更しても内部データは変化しません(同じ時刻であれば)。 なので、フォーマットを変更する場合は新たに`string型`の変数を用意して、`str := hoge.CreatedAt.Format("2006年1月2日15時4分")` などとする必要があります。 また、時刻データ(time.Time型変数の中身)は文字列ではありませんし、フォーマット情報は含まれていません。 そのため、(文字列を取得する場合は)`Format()`メソッドを使って、指定したフォーマットで表記される**日時・時刻文字列**を随時取得する必要があるのです。 この投稿は @user9156 さんのコメントなどを元に編集し、コミュニティWikiとして投稿しました。