View Full Version : مشکل در نمایش تاریخ میلادی وقتی تقویم وویندوز 10 شمسی باشه
resident
پنج شنبه 17 خرداد 1397, 19:07 عصر
سلام. وقت بخیر
جدیدا مشکلی پیدا کردم با تبدیل تاریخ میلادی به شمسی در ویندوز 10.
اگر تقویم ویندوز 10، شمسی باشه، وقتی تاریخ میلادی رو از دیتابیس میخونم، به صورت شمسی نشون میده (بدون اینکه تاریخ میلادی رو به شمسی تبدیل کرده باشم).
کسی راه حلی داره که نیاز نباشه تقویم وبندوز رو میلادی کرد؟
Moien Tajik
پنج شنبه 17 خرداد 1397, 22:22 عصر
کلاس DateTime با توجه Culture اون Thread ای که داخلش هست نتیجه رو برمیگردونه.
یعنی اگر Culture ترد برنامه شما روی fa-Ir ست شده باشه ، به شما تاریخ شمسی رو جای میلادی برمیگردونه و نتیجه DateTime همیشه میلادی نیست.
اگر تاریخ سیستم شمسی باشه ، Time Zone شمارو تغییر پیدا کرده و DateTime.Now با استفاده از Time Zone ، به شما تاریخ رو برمیگردونه و این Time Zone میتونه روی سرورهای مختلف ، با توجه به مکان قرارگیری اون سرور متفاوت باشه ; بعنوان مثال TimeZone ایران و انگلیس باهم متفاوت هستن و این تفاوت برای DateTime.Now اهمیت داره.
بخاطر همین نتایج متفاوت هست.
راه حل این هست که شما از DateTime.UtcNow استفاده کنید و اون UTC رو تبدیل به Time Zone کاربر کنید چون همیشه UTC در تمام Time Zone ها ثابت هست.
راه دیگه که ساده تر هست این هست که شما Culture برنامتون رو خودتون بصورت Manual روی Invariant Culture ست کنید و از تاریخ سیستم استفاده نکنید تا همیشه نتیجه رو بصورت میلادی دریافت کنید : https://stackoverflow.com/a/8477642/6661314
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.