ホームページ > バックエンド開発 > Golang > タイムゾーンオフセットを指定して time.Time オブジェクトを構築するにはどうすればよいですか?

タイムゾーンオフセットを指定して time.Time オブジェクトを構築するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-11 08:52:10
オリジナル
714 人が閲覧しました

How to Construct a time.Time Object with a Specified Time Zone Offset?

タイム ゾーン オフセットを使用した Time.Time の構築

このシナリオでは、Apache ログから日付を正常に解析し、情報を取得しました。年、月、日、時、分、秒、タイムゾーンなど。指定されたタイム ゾーン オフセットを含む time.Time を構築するには、time.Local または time.UTC を利用できません。

Using time.FixedZone()

Toこの課題を解決するには、time.FixedZone() を活用できます。このメソッドを使用すると、固定タイム ゾーン オフセットを使用して time.Location を作成できます。例:

loc := time.FixedZone("myzone", -8*3600)
nativeDate := time.Date(2019, 2, 6, 0, 0, 0, 0, loc)
fmt.Println(nativeDate)
ログイン後にコピー

このコードは、-8 時間のオフセットを持つ「myzone」という名前の time.Location を構築し、それを使用して、指定された日付と時刻を持つ time.Time を作成します。

タイム ゾーン オフセットの解析

タイム ゾーン オフセットが文字列として提供されている場合、次を利用できます。 time.Parse() を使用して解析します。参照ゾーン オフセットのみを含むレイアウト文字列を使用します:

t, err := time.Parse("-0700", "-0800")
fmt.Println(t, err)
ログイン後にコピー

このコードは、タイム ゾーン オフセットを time.Time オブジェクトとしてキャプチャします。

代替ソリューション

または、既存のコードを変更してタイムゾーン オフセットを組み込むこともできます。

t, err := time.Parse("-0700", "-0800")
if err != nil {
    panic(err)
}

nativeDate := time.Date(2019, 2, 6, 0, 0, 0, 0, t.Location())
fmt.Println(nativeDate)
ログイン後にコピー

このソリューションは、まずタイム ゾーン オフセットを time.Time オブジェクトとして解析し、次に Location() メソッドを使用して、構築している time.Time のタイム ゾーンを設定します。

以上がタイムゾーンオフセットを指定して time.Time オブジェクトを構築するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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