ورود

View Full Version : حرفه ای: مشکل با ساعت وقتی سرور در کشور خارجی است



bftarane
جمعه 26 اردیبهشت 1393, 15:33 عصر
سلام. من حدود چند دقیقه پیش یه رکورد در جدول درج کردم، تاریخ رو با این دستور درج کردم

DateTime.Now.ToString()
، هاست هم در کانادا هست.
این تاریخ درج شد براش.
5/16/2014 7:04:28 AM
در حالی که ساعت حدود 3:30 بعد از ظهر بود که رکورد رو درج کردم
یعنی حدود 9:30 اختلاف
اگر هم نیمه دوم سال بود میشد 8:30 اختلاف
که فکر کنم موقع نمایش یا موقع سلکت بر اساس ساعت یه راه این باشه که اگه نیمه دوم ساله با 8:30 جمع بشه نمایش داده بشه
اگه نیمه اول ساله با 9:30
که به نظرم چندان منطقی نیست.

حالا این لینک رو پیدا کردم
http://barnamenevis.org/showthread.php?307524
پست آخرش یعنی پست 5 به نظرم راه خوبی باشه.

منتها الآن موندم یعنی موقع درج باید به سایت 210 دقیقه اضافه بشه و در دیتابیس ثبت بشه؟ یا اشتباه متوجه شدم و موقع نمایش هم می تونه این کار انجام بشه؟

برای داده هایی که از قبل در دیتابیس با دستور
DateTime.Now.ToString() ثبت شدن

راه حلی وجود داره؟

اگه مجبور باشم با همون جمع با 9:30 و 8:30 کار رو انجام بدم چطور نیمه اول سال و دوم سال رو تشخیص بدم؟ با کبیسه و اینا به مشکل نمی خوریم؟

bftarane
جمعه 26 اردیبهشت 1393, 16:03 عصر
کدی که در پست 5 لینک معرفی شده گذاشته شده بود رو تست کردم 1 ساعت اختلاف داره با ساعت فعلی.
ولی این لینک رو پیدا کردم http://www.xiirus.net/articles/article-_net-convert-datetime-from-one-timezone-to-another-7e44y.aspx
و این کد رو تست کردم

TimeZoneInfo timeZoneInfo;
DateTime dateTime;
//Set the time zone information to US Mountain Standard Time
timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("Iran Standard Time");

dateTime = TimeZoneInfo.ConvertTime(DateTime.Now, timeZoneInfo);
//Print out the date and time

Label1.Text = dateTime.ToString("yyyy-MM-dd HH-mm-ss");
میشه گفت درست کار می کنه ولی یه مسئله ای در لوکال و در سرور تست کردم در سرور حدود 2 دقیقه جلوتر از لوکال نشون میداد، چرا این اتفاق می افته مگه مبناش UTC نیست؟ پس این اختلاف 2 دقیقه ای برای چیه؟

بچه ها لطفاً راهنمایی کنید.