C# での DateTime オブジェクトとタイム ゾーンの操作
さまざまな地域の日付と時刻を扱うアプリケーションを開発する場合、正確なタイムゾーンの処理が不可欠です。 C# の標準の DateTime
構造は、ローカル、UTC、および不特定を超える特定のタイム ゾーンに対する限定的な組み込みサポートを提供します。 これに対処するには、TimeZoneInfo
を活用することで、より堅牢なソリューションが提供されます。
この例は、指定されたタイム ゾーン内で DateTime オブジェクトを管理するためのカスタム DateTimeWithZone
構造体を示します。
<code class="language-csharp">public struct DateTimeWithZone { private readonly DateTime utcDateTime; private readonly TimeZoneInfo timeZoneInfo; public DateTimeWithZone(DateTime dateTime, TimeZoneInfo timeZone) { var dateTimeUnspecified = DateTime.SpecifyKind(dateTime, DateTimeKind.Unspecified); utcDateTime = TimeZoneInfo.ConvertTimeToUtc(dateTimeUnspecified, timeZone); timeZoneInfo = timeZone; } public DateTime UtcTime { get { return utcDateTime; } } public TimeZoneInfo TimeZoneInfo { get { return timeZoneInfo; } } public DateTime LocalTime { get { return TimeZoneInfo.ConvertTime(utcDateTime, timeZoneInfo); } } }</code>
この構造体は、内部的に日付と時刻を UTC DateTime
として保存します。 これは、UTC 時間、関連する TimeZoneInfo
、および指定されたゾーンの現地時間にアクセスするためのプロパティを提供します。 夏時間の精度と処理を向上させるために、古い TimeZoneInfo
クラスの代わりに TimeZone
を使用することに注意してください。
この DateTimeWithZone
構造体を使用することで、開発者はテストやデータ処理のために特定のタイム ゾーン (PST など) を表す DateTime
オブジェクトを作成し、システムのローカル タイム ゾーンに関係なく一貫した結果を保証できます。 このアプローチは、正確なタイムゾーン認識を必要とするアプリケーションにとって非常に重要です。
以上がC#を使用して特定のタイムゾーンでDateTimeオブジェクトを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。