如何将CurrentCulture格式的日期时间转换为Gregorian DateTime?

Maj*_*jid 6 c# datetime

我这样设定Global.asax:

protected void Application_BeginRequest(object sender, EventArgs e)
    {
        PersianCulture fa = new PersianCulture();

        Thread.CurrentThread.CurrentCulture = fa;
    }
Run Code Online (Sandbox Code Playgroud)

我想将"1392 1 23"转换为"2013 4 12".

我怎样才能做到这一点?

Jon*_*eet 9

没有"波斯人DateTime" 这样的东西.一个DateTime总是一个公历值,无特定格式.当您对其进行格式化(通常通过调用ToString)时,您可以确定其格式化方式 - 如果您使用的文化使用非公历日历,则会将原始值转换为该日历.

因此,例如,如果您想解析来自波斯语用户的输入,然后将其转换为英语用户可以理解的等效日期,您可以使用:

DateTime date = DateTime.Parse(text, persianCulture);
string englishText = date.ToString(englishCulture);
Run Code Online (Sandbox Code Playgroud)