月名を英語や他の外国語表記にしたり、曜日名を日本語表記にしたり、和暦での年号を付記したりするには、書式を指定した文字列化や特定カルチャの指定を行うことで出来ます。
DateTime/DateTimeOffsetの値を英語・日本語や他の言語での表記で文字列化する
using System;
using System.Globalization;
using System.Threading;
class Sample {
static void Main()
{
var dt = DateTime.Now; // 現在の日時を取得
// スレッドのカルチャをen-US(英語/アメリカ合衆国)に変更
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
Console.WriteLine("{0:D} {0:T}", dt); // 日付と時刻を長い形式で表す標準の書式指定子
Console.WriteLine(dt.ToString("MMMM")); // 月の完全名を表すカスタム書式指定子
Console.WriteLine(dt.ToString("MMM")); // 月の省略名を表すカスタム書式指定子
Console.WriteLine(dt.ToString("dddd")); // 曜日の完全名を表すカスタム書式指定子
Console.WriteLine(dt.ToString("ddd")); // 曜日の省略名を表すカスタム書式指定子
Console.WriteLine();
// スレッドのカルチャは変更せず、カルチャを指定して文字列化
var jajp = new CultureInfo("ja-JP"); // 日本語/日本のカルチャを作成
Console.WriteLine(string.Format(jajp, "{0:D} {0:T}", dt)); // 日付と時刻を長い形式で表す標準の書式指定子
Console.WriteLine(dt.ToString("MMMM", jajp)); // 月の完全名を表すカスタム書式指定子
Console.WriteLine(dt.ToString("MMM", jajp)); // 月の省略名を表すカスタム書式指定子
Console.WriteLine(dt.ToString("dddd", jajp)); // 曜日の完全名を表すカスタム書式指定子
Console.WriteLine(dt.ToString("ddd", jajp)); // 曜日の省略名を表すカスタム書式指定子
Console.WriteLine();
// 個別にカルチャを指定して文字列化する
Console.WriteLine(dt.ToString("dddd", new CultureInfo("de-DE"))); // ドイツ語/ドイツでの曜日の完全名
Console.WriteLine(dt.ToString("dddd", new CultureInfo("fr-FR"))); // フランス語/フランスでの曜日の完全名
Console.WriteLine(dt.ToString("dddd", new CultureInfo("zh-TW"))); // 繁体字中国語/台湾での曜日の完全名
Console.WriteLine();
}
}
実行結果例
Monday, April 01, 2013 3:00:30 PM April Apr Monday Mon 2013年4月1日 15:00:30 4月 4 月曜日 月 Montag lundi 星期一
この点について詳しくは日時・文字列の変換と書式で解説します。 以下のページと合わせてご覧ください。