1
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) 获得结果,例如 - 法国,我在哪里可以找到用于此目的的语言参考列表?

4

5 回答 5

6

假设您已经拥有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);
于 2012-06-30T07:54:26.837 回答
3

直接来自 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"));
于 2012-06-30T07:50:00.677 回答
2

如有必要,尝试dt.ToString("dddd")然后操作该字符串。请参阅自定义日期和时间格式字符串

于 2012-06-30T07:51:03.717 回答
1
DateTime    dateValue    =    new    DateTime(2008,    6,    11);      
Console.WriteLine(dateValue.ToString("ddd",    
                  new    CultureInfo("fr-FR")));
于 2012-06-30T08:19:35.190 回答
0

就这么简单:

var culture = new CultureInfo("da-DK");
var datestring =datetime.ToString("dd MMMMM yyyy kl. hh:mm",culture)
于 2014-05-02T12:45:20.527 回答