asp.net - how can i show correctly datetime in C# -
i have time stamp in persian date format , want convert full persian date, code work correctly in localhost when upload remote server output changed gregorian date
string dt = ""; persiancalendar pc = new persiancalendar(); int year = convert.toint32(ts.substring(0, 4)); int month = convert.toint32(ts.substring(4, 2)); int day = convert.toint32(ts.substring(6, 2)); int hour = convert.toint32(ts.substring(8, 2)); int minute = convert.toint32(ts.substring(10, 2)); int second = convert.toint32(ts.substring(12, 2)); dt = new datetime(year, month, day, hour, minute, second, 0, pc).tostring("dddd dd mmmm yyyy hh:mm:ss", cultureinfo.createspecificculture("fa-ir"));
output code expect (in localhost):
شنبه 22 آبان 1395 13:43:10
and output in remote server
شنبه 12 نوامبر 2016 13:43:10
what should work correctly?
the calendar
parameter in datetime
constructor used interpret integer values not dictate result of calendar. code have written culture dependent not practice in iran since don't use correct culture in our systems. advice use this:
public string getpersiandatestring(datetime date) { persiancalendar pc = new persiancalendar(); string dayofweek; switch (pc.getdayofweek(date)) { case dayofweek.sunday: dayofweek = "یکشنبه"; break; case dayofweek.monday: dayofweek = "دوشنبه"; break; case dayofweek.tuesday: dayofweek = "سه شنبه"; break; case dayofweek.wednesday: dayofweek = "چهارشنبه"; break; case dayofweek.thursday: dayofweek = "پنج شنبه"; break; case dayofweek.friday: dayofweek = "جمعه"; break; case dayofweek.saturday: dayofweek = "شنبه"; break; default: dayofweek = ""; break; } var day = pc.getdayofmonth(date).tostring(); string month; switch (pc.getmonth(date)) { case 1: month = "فروردین"; break; case 2: month = "اردیبهشت"; break; case 3: month = "خرداد"; break; case 4: month = "تیر"; break; case 5: month = "مرداد"; break; case 6: month = "شهریور"; break; case 7: month = "مهر"; break; case 8: month = "آبان"; break; case 9: month = "آذر"; break; case 10: month = "دی"; break; case 11: month = "بهمن"; break; case 12: month = "اسفند"; break; default: month = ""; break; } var year=pc.getyear(date).tostring(); return dayofweek + " " + day + " " + month + " " + year + " " + date.toshorttimestring(); }
this draft , can write better organized code.
Comments
Post a Comment