DateTimeのParseメソッドは和暦も変換できる
DateTimeのParseメソッド、あるいはTryParseメソッドを使うと、たとえば「1970/7/7」のような文字列をDateTimeオブジェクトに変換できる。
このメソッドは和暦の文字列が変換できて、なかなか優秀。和暦の略号の「S」も変換できる。とても優秀。
DateTimeのParseメソッドで変換できる文字列の書式を調べた結果をまとめる。
1970-7-7 --> 1970年7月7日
1970/07/07 --> 1970年7月7日
1970/7/7 --> 1970年7月7日
1970.07.07 --> 1970年7月7日
1970.7.7 --> 1970年7月7日
昭和45年07月07日 --> 1970年7月7日
昭和45年7月7日 --> 1970年7月7日
S45年07月07日 --> 1970年7月7日
S45年7月7日 --> 1970年7月7日
S45-07-07 --> 1970年7月7日
S45-7-7 --> 1970年7月7日
S45/07/07 --> 1970年7月7日
S45/7/7 --> 1970年7月7日
S45.07.07 --> 1970年7月7日
S45.7.7 --> 1970年7月7日
700707 --> NG
S450707 --> NG
3450707 --> NG
年月日の区切りが無いとさすがに変換できないみたいですな。
*
テストに使ったコードは下記の通り。
今気がついたのだけど、「->」を貼り付けると「->」に自動的に変換されていた。これは賢い。前からそうだったけ?
このメソッドは和暦の文字列が変換できて、なかなか優秀。和暦の略号の「S」も変換できる。とても優秀。
DateTimeのParseメソッドで変換できる文字列の書式を調べた結果をまとめる。
変換できる文字列
1970-07-07 --> 1970年7月7日1970-7-7 --> 1970年7月7日
1970/07/07 --> 1970年7月7日
1970/7/7 --> 1970年7月7日
1970.07.07 --> 1970年7月7日
1970.7.7 --> 1970年7月7日
昭和45年07月07日 --> 1970年7月7日
昭和45年7月7日 --> 1970年7月7日
S45年07月07日 --> 1970年7月7日
S45年7月7日 --> 1970年7月7日
S45-07-07 --> 1970年7月7日
S45-7-7 --> 1970年7月7日
S45/07/07 --> 1970年7月7日
S45/7/7 --> 1970年7月7日
S45.07.07 --> 1970年7月7日
S45.7.7 --> 1970年7月7日
変換できない文字列
19700707 --> NG700707 --> NG
S450707 --> NG
3450707 --> NG
年月日の区切りが無いとさすがに変換できないみたいですな。
*
テストに使ったコードは下記の通り。
List*lst = new List () { "1970-07-07", "1970-7-7", "1970/07/07", "1970/7/7", "1970.07.07", "1970.7.7", "19700707", "700707", "昭和45年07月07日", "昭和45年7月7日", "S45年07月07日", "S45年7月7日", "S45-07-07", "S45-7-7", "S45/07/07", "S45/7/7", "S45.07.07", "S45.7.7", "S450707", "3450707", }; foreach (string s in lst) { string t; DateTime dd; if ((DateTime.TryParse(s, out dd))) { t = dd.ToLongDateString(); } else { t = "NG"; } this.textBox1.Text += string.Format("{0} --> {1}" + Environment.NewLine, s, t); }
今気がついたのだけど、「->」を貼り付けると「->」に自動的に変換されていた。これは賢い。前からそうだったけ?
コメント
コメントを投稿