在 C# 中使用日期時間對象和時區
在開發處理不同地區日期和時間的應用程序時,準確的時區處理至關重要。 C# 中的標準 DateTime
結構為本地、UTC 和未指定之外的特定時區提供有限的內置支持。 為了解決這個問題,利用 TimeZoneInfo
提供了更強大的解決方案。
此示例演示了一個自定義 DateTimeWithZone
結構來管理指定時區內的 DateTime 對象:
<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中文網其他相關文章!