DateTimeクラスで作成されたUTCタイムスタンプがあります。
var time = DateTime.UtcNow;
フォーマットすると、次の結果が得られます。
time.ToString("yyyy-MM-ddTHH:mm:sszzz")
> 2019-02-03T10:08:40+00:00
これは正しいですが、次のようにローカルタイムゾーンでフォーマットする必要があります。
2019-02-03T11:08:40+01:00
<+01:00に注意してください
どうすればこれを入手できますか?
この例ではDateTime.Localを使用できますが、タイムスタンプは実際には別のシステム/モジュールからのものであるため、ソリューションはDateTime.UtcNowのようなもので動作する必要があります
UTC DateTimeを特定のタイムゾーンの現地時間に変換することに興味がある場合は、TimeZoneInfoクラスを確認できます。次に例を示します。
var utcDate = DateTime.UtcNow;
// 04/02/2019 11:23:39
// Kind is Utc
var localDate = utcDate.ToLocalTime();
// 04/02/2019 12:23:39
// Kind is now local
var timeZoneId = "US Eastern Standard Time";
var timeZone = TimeZoneInfo.FindSystemTimeZoneById(timeZoneId);
DateTime usEasternStandardDateTime = TimeZoneInfo.ConvertTimeFromUtc(utcDate, timeZone);
// 04/02/2019 06:23:39
// Kind is unspecified
また、詳細とC#のFindTimeZoneById()で使用するタイムゾーンIDのリストについては、UTC / GMT時間を現地時間に変換するをご覧ください。サポートされているタイムゾーンの完全なリストについては
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加