نوشته شده توسط
safari_m4
سلام دوستان مشکل خطا در خط مشخص شده در کد ذیل چیست با تشکر از دوستان
public string ShamsiToMiladi(string ShamsiDate)
{
try
{
PersianCalendar PDate = new PersianCalendar();
int y = 0;
int m = 0;
int d = 0;
if (ShamsiDate.Length == 10)
{
y = int.Parse(ShamsiDate.Substring(0, 4));
m = int.Parse(ShamsiDate.Substring(5, 2));
d = int.Parse(ShamsiDate.Substring(8, 2));
}
else
{
return null;
}
return PDate.ToDateTime(y, m, d, 1, 1, 1, 1, 1).ToShortDateString();
}
catch (Exception ex)
{
throw (ex);
}
}
خطا در این کد می باشد و همه روشها را امتحان کردم ولی به نتیجه نرسیدم
return PDate.ToDateTime(y, m, d, 1, 1, 1, 1, 1).ToShortDateString();
public string ShamsiToMiladi (string ShamsiDate)
{
try
{
var PDate = new PersianCalendar();
var y = 0;
var m = 0;
var d = 0;
if ( ShamsiDate.Length == 10)
{
y = int.Parse (ShamsiDate.Substring (0, 4));
m = int.Parse (ShamsiDate.Substring (5, 2));
d = int.Parse (ShamsiDate.Substring (8, 2));
}
else
{
return null;
}
return PDate.ToDateTime (y, m, d, 0, 0, 0, 0). ToShortDateString();
}
catch (Exception ex)
{
throw (ex);
}
}
قالبی که ToShortDateString بر میگردونه بر اساس culture سیستم تعیین میشه لذا بر اساس تنظیمات ویندوز هر کاربری میتونه متفاوت باشه.
برای همین بهتره که از ToShortDateString استفاده نکنید، مثلا از ToString و InvariantCulture استفاده کنید تا قالب همیشه ثابت و مشخص باشه :
return PDate.ToDateTime (y, m, d, 0, 0, 0, 0) .ToString( "yyyy/MM/dd", CultureInfo.InvariantCulture);