掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
日付の和暦⇔西暦変換 (ID:147668)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> VB6でいうFormat関数がなくなったため Format 関数はありますが、VB6 のものとは仕様が異なるので、 そのままのコードでは動かいのですよね…。 「日本語環境以外でも和暦を表示させたい」といったニーズにも 対応できるよう、多言語対応に関する仕様が変更されているので、 仕方ないのでしょうけれども。 # VB6 でも、"2012/07/04" のような文字列が欲しい場合に、 # (誤) Format(Now, "YYYY/MM/DD") # (正) Format(Now, "YYYY\/MM\/DD") # のような間違いは良くありましたね。 > H24/06/06 のような日付を 2012/06/06に変換 日付(Date型)ではなく、文字列(String)からの変換ということでしょうか。 日付型から文字列への変換には、String.Format メソッドあるいは 日付型の ToString メソッドに書式指定することで行えます。 逆に文字列から日付型へ変換するのは、Date.TryParseExact メソッドです。 書式も指定できるので、日本だけでなく、他国の暦にも対応できます。 暦の指定には、System.Globalization 名前空間を利用することになります。 多言語対応の肝となるのは、『CultureInfo クラス』ですね。 具体的な記述方法は下記が参考になるかと思いますが、必要な暦(Calendar)を CultureInfo の .DateTimeFormat.Calendar プロパティにセットしておき、 それを String.Format や Date.TryParseExact に渡せば OK です。 http://dobon.net/vb/dotnet/string/datetimeformat.html http://www.atmarkit.co.jp/fdotnet/dotnettips/034wareki/wareki.html もしもこれらのメソッドに CultureInfo を渡さなかった場合には、 コントロールパネルの地域設定などから取得された「既定のカルチャ」が使われます。 この既定のカルチャを変更する場合には、 My.Application.ChangeCulture メソッド My.Application.ChangeUICulture メソッド System.Windows.Forms.Application.CurrentCulture プロパティ System.Threading.Thread.CurrentThread.CurrentCulture プロパティ System.Threading.Thread.CurrentThread.CurrentUICulture プロパティ などを利用します。 なお、.NET でサポートしている暦としては、下記の物があります。 ・和暦 (JapaneseCalendar クラス) … 太陽暦: 今回使うのはコレ ・グレゴリオ暦 (GregorianCalendar クラス) … 太陽暦: VB6 の vbCalGreg、我々が良く使う「西暦」 ・ユリウス暦 (JulianCalendar クラス) … 太陽暦 ・回教暦 (HijriCalendar クラス) … 太陰暦: VB6 の vbCalHijri ・サウジ回教暦 (UmAlQuraCalendar クラス) … 太陰暦 ・韓国暦 (KoreanCalendar クラス) … 太陽暦 ・台湾暦 (TaiwanCalendar クラス) … 太陽暦 ・タイ仏暦 (ThaiBuddhistCalendar クラス) … 太陽暦 ・ペルシャ暦 (PersianCalendar クラス) … 太陽暦 ・ヘブライ暦 (HebrewCalendar クラス) … 太陰太陽暦 この他、東アジアの太陰太陽暦(EastAsianLunisolarCalendar)系の暦があります。 これらはカルチャとしては指定できず、計算/変換用の暦として利用されます。 (たとえば、うるう年、うるう月、うるう日の取得などが行えます) ・日本旧暦 (JapaneseLunisolarCalendar クラス) … 太陰太陽暦 ・韓国陰暦 (KoreanLunisolarCalendar クラス) … 太陰太陽暦 ・中国暦 (ChineseLunisolarCalendar クラス) … 太陰太陽暦 ・台湾太陽太陰暦 (TaiwanLunisolarCalendar クラス) … 太陰太陽暦
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.