Я безуспешно пытаюсь преобразовать конкретную персидскую дату в григорианскую. Я пробовал код ниже, но получаю сообщение об ошибке компилятора:
DateTime не содержит конструктора, принимающего 4 аргумента.
using System.Globalization;
DateTime dt = new DateTime(year, month, day, new PersianCalendar());
Я также пробовал ниже, но получаю ту же персидскую дату (obj в коде ниже), которую я передал в функцию ConvertToGregorian
, а не дату по григорианскому календарю:
public static DateTime ConvertToGregorian(this DateTime obj)
{
GregorianCalendar gregorian = new GregorianCalendar();
int y = gregorian.GetYear(obj);
int m = gregorian.GetMonth(obj);
int d = gregorian.GetDayOfMonth(obj);
DateTime gregorianDate = new DateTime(y, m, d);
var result = gregorianDate.ToString(CultureInfo.InvariantCulture);
DateTime dt = Convert.ToDateTime(result);
return dt;
}
Обратите внимание, что мой CultureInfo.InvariantCulture
- английский США.
CultureInfo.InvariantCulture is English US
--- Что? - person Nikhil Agrawal   schedule 19.01.2016new DateTime(year, month, day, new PersianCalendar())
. И MSDN говорит, что данный конструктор здесь начиная с .NET 1.1. - person user4003407   schedule 19.01.2016DateTime
простой (и сломанный, но по другим причинам) и не поддерживает ссылку на календарь. ЕстьDateTime
? Это григорианская дата, и точка. - person Clockwork-Muse   schedule 19.01.2016csi.exe
, включенный в Visual Studio Community 2015 Update 1. - person user4003407   schedule 19.01.2016new PersianCalendar().ToDateTime(year, month, day, 0, 0, 0, 0)
- person user4003407   schedule 19.01.2016