sps*_*pli 4 c# string datetime locale
我有一个方法
DateToString(DateTime datetime, string format, CultureInfo cultrueInfo)
{
return datetime.ToString(format, cultureInfo);
}
Run Code Online (Sandbox Code Playgroud)
参数:
datetime: {10/1/2016 12:00:00 AM}
format: "ddd, dd MMM"
cultureInfo: {ar-SA}
Run Code Online (Sandbox Code Playgroud)
但它让我回复了"السبت,30ذوالحجة".10月1日是星期六.为什么它似乎在星期六9月30日回归我?我身边有什么问题吗?
ar-SA文化使用UmAlQuraCalendar日历.
new CultureInfo("ar-SA").Calendar.Dump(); // System.Globalization.UmAlQuraCalendar
Run Code Online (Sandbox Code Playgroud)
由于您在ToString方法中使用了该文化,因此它将基于该日历生成字符串表示.由于您的文化不使用,您不能指望生成"九月" GregorianCalendar.
在UmAlQuraCalendar,您的DateTiem将表示为30-12-1437.
var dt = new DateTime(2016, 10, 1); // Gregorian
var umAlQura = new UmAlQuraCalendar();
umAlQura.GetYear(dt); // 1437
umAlQura.GetMonth(dt); // 12
umAlQura.GetDayOfMonth(dt); // 30
Run Code Online (Sandbox Code Playgroud)
https://www.staff.science.uu.nl/~gent0113/islam/ummalqura_converter.htm
这就是为什么:
ddd格式说明符生成السبت((Yawm)as-Sabt aka Saturday),因为它是缩写的日期名称.dd格式说明符30按预期生成.MMM格式说明符生成ذوالحجة(Dhu al-Hijjah),因为它是缩写的月份名称.如您所见,缩写的日期和月份名称在结果中切换.这可能是一个从右到左的问题.
| 归档时间: |
|
| 查看次数: |
481 次 |
| 最近记录: |