DateTime dt = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
string day = dt.DayOfWeek.ToString();
day = day.Substring(0, 1).ToUpper();
MessageBox.Show(day); // result is "F"
如何以当地语言 (CultureInfo) 获得结果,例如 - 法国,我在哪里可以找到用于此目的的语言参考列表?
DateTime dt = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
string day = dt.DayOfWeek.ToString();
day = day.Substring(0, 1).ToUpper();
MessageBox.Show(day); // result is "F"
如何以当地语言 (CultureInfo) 获得结果,例如 - 法国,我在哪里可以找到用于此目的的语言参考列表?
假设您已经拥有CultureInfo
,您可以使用:
string dayName = dateTime.ToString("dddd", culture);
然后您需要自己获取它的第一个字符 - 没有自定义日期/时间格式。您可以使用ddd
缩写的日期名称,但这通常是三个字符,而不是一个。
至于文化列表 - 您可以使用CultureInfo.GetCultures
. 它会因平台而异,并且可能会随着时间甚至 .NET 的版本而变化。
顺便说一句,这段代码并不理想:
DateTime dt = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
如果您碰巧在一年年底的午夜之前调用它,您可以获得“旧”年,然后将一月作为月份。您应该评估DateTime.Now
(or DateTime.Today
) 一次,然后使用相同的值两次:
DateTime today = DateTime.Today;
DateTime startOfMonth = new DateTime(today.Year, today.Month, 1);
直接来自 MSDN:MSDN on DateTime with CultureInfo
DateTime dt = DateTime.Now;
// Sets the CurrentCulture property to U.S. English.
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
// Displays dt, formatted using the ShortDatePattern
// and the CurrentThread.CurrentCulture.
Console.WriteLine(dt.ToString("d"));
如有必要,尝试dt.ToString("dddd")
然后操作该字符串。请参阅自定义日期和时间格式字符串。
DateTime dateValue = new DateTime(2008, 6, 11);
Console.WriteLine(dateValue.ToString("ddd",
new CultureInfo("fr-FR")));
就这么简单:
var culture = new CultureInfo("da-DK");
var datestring =datetime.ToString("dd MMMMM yyyy kl. hh:mm",culture)