在C#中建立具有特定時區的DateTime物件
在測試場景中或處理使用不同時區的應用程式時,建立具有特定時區的DateTime物件是很常見的需求。 C#中的DateTime建構函式為指定時區提供了有限的選項。
要建立具有特定時區的DateTime對象,您可以使用DateTime.SpecifyKind()方法指定DateTime對象的類型(Local、UTC或Unspecified),然後使用TimeZoneInfo.ConvertTime()或TimeZoneInfo.ConvertTimeToUtc()將時間轉換為所需的時區。
但是,使用TimeZoneInfo類別更靈活,建議用於建立具有自訂時區的DateTime物件。以下是如何操作的範例:
using System; public class DateTimeWithTimeZone { private readonly DateTime utcDateTime; private readonly TimeZoneInfo timeZone; public DateTimeWithTimeZone(DateTime dateTime, TimeZoneInfo timeZone) { utcDateTime = dateTime.ToUniversalTime(); this.timeZone = timeZone; } public DateTime UniversalTime => utcDateTime; public TimeZoneInfo TimeZone => timeZone; public DateTime LocalTime => TimeZoneInfo.ConvertTimeFromUtc(utcDateTime, timeZone); }
DateTimeWithTimeZone結構封裝了UTC DateTime和TimeZoneInfo,讓您輕鬆地在UTC時間和本地時間之間進行轉換。在處理大量的DateTime物件時,出於效能原因,最好使用結構而不是類別。
這種方法在使用特定時區的DateTime物件時,提供了更大的靈活性和程式碼清晰度。
以上是如何在C#中使用特定時區創建DateTime對象?的詳細內容。更多資訊請關注PHP中文網其他相關文章!