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が、通常は 1 文字ではなく 3 文字です。

文化のリストについては、 を使用できますCultureInfo.GetCultures。これはプラットフォームによって異なり、時間の経過とともに、さらには .NET のバージョンによっても異なる可能性があります。

余談ですが、このコードは理想的ではありません。

DateTime dt = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);

年末の真夜中の直前にそれを呼び出した場合、「古い」年を取得できますが、月は 1 月になります。評価DateTime.Now(またはDateTime.Today) を 1 回行ってから、同じ値を 2 回使用する必要があります。

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 に答える