رفع مشکل تبدیلات UTC با تغییر اطلاعات TimeZone ایران در ویندوز
نویسنده: وحید نصیری
تاریخ: ۱۴۰۲/۰۲/۰۶ ۱۵:۳۵
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
var iranStandardTime = TimeZoneInfo.GetSystemTimeZones()
.FirstOrDefault(timeZoneInfo =>
timeZoneInfo.StandardName.Contains("Iran",
StringComparison.OrdinalIgnoreCase));
Console.WriteLine(iranStandardTime.BaseUtcOffset); // 03:30:00
var dateTime = DateTimeOffset.UtcNow;
var iranTime = TimeZoneInfo.ConvertTime(dateTime, iranStandardTime);
Console.WriteLine(iranTime); // 06/02/1402 12:34:23 ?.? +04:30 --> this is coming from the `adjustment rules`
یک نکتهی تکمیلی: اگر از کتابخانهی DNTPersianUtils.Core استفاده میکنید، چون اطلاعات دقیق منطقهی زمانی در یکسری از سیستم عاملها نه بهروز میشود و نه وجود دارد (خصوصا برای کم حجمتر شدن توزیعهای ویژهی لینوکسی)، کلاس IranTimeZoneInfo اختصاصی به آن اضافه شده و به صورت توکار از آن استفاده میکند. بنابراین دیگر مهم نیست که از چه سیستم عاملی استفاده میکنید و اینکه آیا به روز است یا خیر.