PDA

View Full Version : حرفه ای: گرفتن تاریخ میلادی در ویندوز 10



ebrahim.rayatparvar
سه شنبه 27 مرداد 1394, 15:07 عصر
سلام خدمت همه دوستان

من برنامه ای رو نوشته بودم و برای گرفتن تاریخ و ساعت کنونی سرور و پاس دادن آن به سرور از کد زیر استفاده می کردم :


cmd.Parameters.Add("@Date", SqlDbType.NVarChar).Value = DateTime.Now.ToString("MM/dd/yyyy HH:mm");


که خیلی خوب کار میکرد. حالا ما امدیم ویندوز 10 نصب کردیم همین کد حالا میخواد بیاد تاریخ رو بفرسته شمسی میفرسته ما گفتیم شاید به خاطر اینه که location یا format این ها به ترتیب ایران و پرشین هست شمسی میده ولی زمانی که همه رو به english تغییر دادیم باز هم همین مشکل رو داره. به نظر شما مشکل از چیه نکته دیگه هم بگم که خودمون شاخ در آوردیم همین کد در داخل یه برنامه دیگه نوشته بودیم یعنی همین برنامه تو ورژن پایینش خوب داره کار می کنه :عصبانی++::عصبانی++:

veniz2008
سه شنبه 27 مرداد 1394, 17:23 عصر
سلام.
احتمال زیاد شما تقویم ویندوز رو به شمسی تغییر دادید و مثلا به جای 8/18/2015 (میلادی) تاریخ رو بصورت 1394/05/27 دارید (تصویر زیر نتیجه دستور DateTime.Now رو نشون میده که چون تقویم ویندوز شمسی هست تاریخ شمسی رو نشون میده) :
134418

برای رفع مشکل، تاریخ شمسی رو از مسیر زیر به میلادی تغییر بدید (Control Panel ----> Clock, Language and Region ) :
134419

موفق باشید.

Mahmoud.Afrad
سه شنبه 27 مرداد 1394, 17:36 عصر
وقتی قراره میلادی ذخیره بشه حتما حتما از نوع استاندارد datetime برای ستون تاریخ در دیتابیس استفاده کنید.در اینصورت مهم نیست ویندوز این تاریخ رو در چه قالبی نمایش میده. و کافیه DateTime.Now رو ارسال کنید به جدول.

rg_BlackRose
سه شنبه 27 مرداد 1394, 18:20 عصر
سلام

در ادامه توضیحات آقای افراد

میتونید از کد زیر استفاده کنید

DateTime.Now.ToString(CultureInfo.InvariantCulture )


متد CultureInfo.InvariantCulture تنظیمات کاربر رو نادیده میگیره، و فرمت استاندارد رو در قالب(dd/mm/yyyy HH:mm:ss) برمیگردونه.

موفق باشید

ebrahim.rayatparvar
سه شنبه 27 مرداد 1394, 18:34 عصر
سلام.
احتمال زیاد شما تقویم ویندوز رو به شمسی تغییر دادید و مثلا به جای 8/18/2015 (میلادی) تاریخ رو بصورت 1394/05/27 دارید (تصویر زیر نتیجه دستور DateTime.Now رو نشون میده که چون تقویم ویندوز شمسی هست تاریخ شمسی رو نشون میده) :
134418

برای رفع مشکل، تاریخ شمسی رو از مسیر زیر به میلادی تغییر بدید (Control Panel ----> Clock, Language and Region ) :
134419

موفق باشید.

نه مهندس جان چیزی که شما گفتید رو بالا من توضیح دادم که این کار رو منم کردم ولی نشد.



Mahmoud.Afrad (http://barnamenevis.org/member.php?71297-Mahmoud-Afrad)
وقتی قراره میلادی ذخیره بشه حتما حتما از نوع استاندارد datetime برای ستون تاریخ در دیتابیس استفاده کنید.در اینصورت مهم نیست ویندوز این تاریخ رو در چه قالبی نمایش میده. و کافیه DateTime.Now رو ارسال کنید به جدول.


مهندس جان ولی برای ما جواب نمیده.



rg_BlackRose (http://barnamenevis.org/member.php?270069-rg_BlackRose)

سلام

در ادامه توضیحات آقای افراد

میتونید از کد زیر استفاده کنید


1
2

DateTime.Now.ToString(CultureInfo.InvariantCulture )








متد CultureInfo.InvariantCulture تنظیمات کاربر رو نادیده میگیره، و فرمت استاندارد رو در قالب(dd/mm/yyyy HH:mm:ss) برمیگردونه.

موفق باشید


مرسی مهندس مشکلم با کد شما حل شد و برنامه تونست لاگین کنه.

Mahmoud.Afrad
سه شنبه 27 مرداد 1394, 20:09 عصر
چرا جواب نمیده؟ کافیه به صورت datetime ذخیره کنی و موقع نمایش با فرمت مناسب نمایش بدی.

ebrahim.rayatparvar
سه شنبه 27 مرداد 1394, 20:41 عصر
چرا گرفتم ولی جواب نداد ولی روشی که rg_BlackRose (http://barnamenevis.org/member.php?270069-rg_BlackRose) گفتند جواب داد. خیلی خوب هم جواب داد.