C# 中意大利语中的星期名称

本文关键字:意大利语 | 更新日期: 2023-09-27 18:01:22

我无法使用 c# 在我的 aspx 页面中提取意大利语中的星期名称。

我已经尝试过这个解决方案,但在我周五的输出中,有什么问题?

DateTime ItalianJobCookie = DateTime.Parse(Request.Cookies["ItalianJob"].Value);
string ItalianJobCookieDayName = ItalianJobCookie.DayOfWeek.ToString("G", new CultureInfo("it-IT"));
Response.Write(ItalianJobCookieDayName.ToString());

C# 中意大利语中的星期名称

DateTime.DayOfWeek返回给定日期时间的DayOfWeek,该没有支持不同区域性的ToString。这甚至被记录在案:

枚举的成员未本地化。返回 星期几的本地化名称,调用 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是文化不变的。它始终返回基于英语的日期名称。

来自文档;

枚举的成员未本地化。返回 星期几的本地化名称,调用 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);