日付型から曜日を取得するということを考えたとき、以下のようにするのが一番簡単である。
これでOKなら一番楽なのだが、日本語で取りたいんだよ!ということの方が多いだろう。
そんなときはCultureInfoクラスでカルチャを指定することができるのだ。
カルチャ名はMSDNの以下のページから参照してほしい。
http://msdn.microsoft.com/ja-jp/library/system.globalization.cultureinfo(v=vs.71).aspx
では、日付にどうやってセットするのよ?
というと、カスタム書式で指定するときに引数として指定する。
ちなみに、このパターンにおいて、カルチャの指定を、
CultureInfo info = new CultureInfo("ja");
とするとエラーとなる。
カルチャ 'ja' はニュートラル カルチャです。フォーマットや解析に使用できません、スレッドの現在のカルチャとして設定することもできません。
といった具合に。
ちなみに、英語表記でもこのように指定すれば省略形を取ることができる。
もちろん他の言語でも指定できるので、いろいろと使うことができるだろう。
DateTime dt = DateTime.Now; Console.WriteLine(dt.DayOfWeek); // 結果 // Monday英語表記である。
これでOKなら一番楽なのだが、日本語で取りたいんだよ!ということの方が多いだろう。
そんなときはCultureInfoクラスでカルチャを指定することができるのだ。
using System.Globalization;
// 日本をセット
CultureInfo info = new CultureInfo("ja-JP");
まず、こんな感じでセットする。カルチャ名はMSDNの以下のページから参照してほしい。
http://msdn.microsoft.com/ja-jp/library/system.globalization.cultureinfo(v=vs.71).aspx
では、日付にどうやってセットするのよ?
というと、カスタム書式で指定するときに引数として指定する。
DateTime dt = DateTime.Now;
CultureInfo info = new CultureInfo("ja-JP");
Console.WriteLine(dt.ToString("dddd", info));
// 結果
// 月曜日
「ddd」だと、省略形になる。上記の場合だと「月」と表示されるはずだ。ちなみに、このパターンにおいて、カルチャの指定を、
CultureInfo info = new CultureInfo("ja");
とするとエラーとなる。
カルチャ 'ja' はニュートラル カルチャです。フォーマットや解析に使用できません、スレッドの現在のカルチャとして設定することもできません。
といった具合に。
DateTime dt = DateTime.Now;
CultureInfo info = new CultureInfo("en-US");
Console.WriteLine(dt.ToString("ddd", info));
// 結果
// Mon
ちなみに、英語表記でもこのように指定すれば省略形を取ることができる。
もちろん他の言語でも指定できるので、いろいろと使うことができるだろう。