我这样设置Global.asax
:
protected void Application_BeginRequest(object sender, EventArgs e)
{
PersianCulture fa = new PersianCulture();
Thread.CurrentThread.CurrentCulture = fa;
}
我想将“1392 1 23”转换为“2013 4 12”。
我怎样才能做到这一点?
没有“波斯人DateTime
”这样的东西。值DateTime
始终是公历值,没有特定格式。当您格式化它(通常通过调用ToString
)时,您可以确定它的格式 - 如果您使用使用非公历的文化,它会将原始值转换为该日历。
因此,例如,如果您想解析来自波斯用户的输入,然后将其转换为英语用户可以理解的等效日期,您可以使用:
DateTime date = DateTime.Parse(text, persianCulture);
string englishText = date.ToString(englishCulture);
我不相信有一个术语叫做英语 Datetime的波斯语Datetime 。
来自MSDN;
DateTime 值类型表示日期和时间,其值范围从 00:00:00(午夜)、0001 年 1 月 1 日 Anno Domini(普通时代)到 11:59:59 PM、9999 年 12 月 31 日(公历)日历。
当您使用Culture
时DateTime
,它会自动转换为此日历。
该类
CultureInfo
提供特定于文化的信息,例如与特定文化相关的语言、子语言、国家/地区、日历和惯例。此类还提供对DateTimeFormatInfo
、NumberFormatInfo
、CompareInfo
和TextInfo
对象的文化特定实例的访问。这些对象包含特定区域性操作所需的信息,例如大小写、格式化日期和数字以及比较字符串。
您可以使用DateTime.Parse()
System.Globalization.CultureInfo cultureinfo =
new System.Globalization.CultureInfo("en-US");
DateTime dt = DateTime.Parse("11/04/2013", cultureinfo);