2017-02-14 10 views
1

時間変数を指定すると、年、月、日を印刷したいと思います。 ドキュメントからは、どのレイアウトでも使用できるようです。たとえば、2006-01-02、2006-10-10、1999-02-02のレイアウトの違いはわかりません。Go:time.Format: '2006-01-02'レイアウトの意味を理解する方法は?

ただし、レイアウト2006-01-02のみが私が期待するものを返します。 レイアウトで '2006'、 '01'、 '02'の意味に関するドキュメントはどこにありますか?

私はさまざまなレイアウトで、ここで演奏:go playground: testing layouts

+0

「パッケージpの関数fのレイアウトで[...詳細]の意味についてのドキュメントはどこにありますか?その答えは常に同じです:パッケージpのドキュメント(パッケージの全文を読んでください!)と関数fのドキュメント(それも読んでください;ドキュメントの短絡はありません。推測しないでください。シグネチャに基づいていると仮定せず、関数docのみを試してはいけません。doc:まずパッケージdocを読み、次に関数docを読み込みます。必要に応じて繰り返します。例を実行します。 – Volker

答えて

5

Mon Jan 2 15:04:05 -0700 MST 2006はレイアウトはその正確な日付を使用する必要があることを意味する、基準時間です。 more information hereがありますが、基本的にdatetimeの各部分に固有の値を使用することで、実際に各部分(年、月など)が実際にどこにあるかを知ることができます。

Corrected go playground

3

詳細examplesを参照して、ジャックの情報をフォローアップします

// The layout string used by the Parse function and Format method 
// shows by example how the reference time should be represented. 
// We stress that one must show how the reference time is formatted, 
// not a time of the user's choosing. Thus each layout string is a 
// representation of the time stamp, 
// Jan 2 15:04:05 2006 MST 
// An easy way to remember this value is that it holds, when presented 
// in this order, the values (lined up with the elements above): 
// 1 2 3 4 5 6 -7 

この基準時間が行くが、2017年1月2日または2月として01-02-17を解析する必要があるかどうかを明確にするために私たちをことができます1

+0

ありがとうございます、これはすべてを説明しています:「ユーザーが選択した時間ではなく、参照時刻がどのように書式設定されているかを示す必要があることを強調します。このような重要な情報がこの例では隠されているのは悲しいことです。 – mkokho

関連する問題