我无法使用 c# 在我的 aspx 页面中提取意大利语中的星期几名称。
我已经尝试过这个解决方案,但在周五的输出中,出了什么问题?
DateTime ItalianJobCookie = DateTime.Parse(Request.Cookies["ItalianJob"].Value);
string ItalianJobCookieDayName = ItalianJobCookie.DayOfWeek.ToString("G", new CultureInfo("it-IT"));
Response.Write(ItalianJobCookieDayName.ToString());
DateTime.DayOfWeek
返回给定日期时间的 DayOfWeek
,但没有支持不同文化的 ToString
。这甚至被记录在案:
DayOfWeek 枚举的成员未本地化。回来 星期几的本地化名称,调用 DateTime.ToString(String) 或 DateTime.ToString(String, IFormatProvider) 方法 具有“ddd”或“dddd”格式 字符串。前一个格式字符串生成缩写的工作日 姓名;后者产生完整的工作日名称。
而是与
DateTime
一起使用
string ItalianJobCookieDayName = ItalianJobCookie.ToString("dddd");
如果当前文化是意大利语,否则:
string ItalianJobCookieDayName = ItalianJobCookie.ToString("dddd", new CultureInfo("it-IT"));
如果您想要缩写的日期名称,请使用
ddd
而不是 dddd
。 更多信息。
DayOfWeek
是文化不变的。它总是返回基于英语的日期名称。
来自文档;
DayOfWeek 枚举的成员未本地化。返回 星期几的本地化名称,请调用 DateTime.ToString(String) 或 DateTime.ToString(String, IFormatProvider) 方法,格式为 "ddd" 或 "dddd" 字符串。前一个格式字符串生成缩写的工作日 姓名;后者产生完整的工作日名称。
dddd
格式说明符 与 it-IT
文化一起使用。
string ItalianJobCookieDayName = ItalianJobCookie.ToString("dddd", new CultureInfo("it-IT"));
有可能,替换这个:
string ItalianJobCookieDayName =
ItalianJobCookie.DayOfWeek.ToString("G", new CultureInfo("it-IT"));
这样:
string ItalianJobCookieDayName =
new CultureInfo("it-IT").DateTimeFormat.GetDayName(ItalianJobCookie.DayOfWeek);