新しい元号(年号)への対応方法について(.NET製品)

文書番号 : 36721     文書種別 : 使用方法     登録日 : 2013/11/01     最終更新日 : 2019/04/12
文書を印刷する
対象製品
.NET 製品共通
詳細
和暦の改元(「平成」から「令和」へ)に伴う対応の方法は、製品によって異なります。



1. 製品独自の機能で和暦を出力する製品
以下の製品は、Windowsのレジストリ情報に保存されている和暦情報を使用せず、製品独自の機能で和暦を出力しています。これらの製品の新元号対応方法について説明します。

・CalendarGrid for Windows Forms 1.0J/2.0J
・El Tabelle for .NET 3.0J
・El Tabelle MultiRow 4.0J
・El Tabelle Sheet 4.0J
・El Tabelle Sheet for Windows Forms 4.1J
・InputMan for .NET 3.0J
・InputMan for .NET Windows Forms 4.0J
・InputMan for Windows Forms 5.0J/6.0J/7.0J/8.0J/10.0J
・InputMan for .NET Web Forms 2.0J
・InputMan for ASP.NET 3.0J/7.0J/8.0J/10.0J
(InputMan for Windows FormsおよびInputMan for ASP.NETの自由書式入力機能を使用している場合の注意事項については、後述の「InputManの自由書式入力機能」をご参照ください)
・InputMan for WPF 1.0J/2.0J
・InputMan for Silverlight 1.0J
・MultiRow for Windows Forms 5.0J/6.0J/7.0J/8.0J/10.0J
・MultiRow for ASP.NET 1.0J
・PlusPak for Windows Forms 5.0J/6.0J/7.0J/8.0J/10.0J
・SPREAD for Windows Forms 7.0J/8.0J/10.0J/11.0J/12.0J
(日付時刻型セルの動作については、後述の「SPREAD for Windows Formsの日付時刻型セル」をご参照ください)
・SPREAD for WPF 1.0J/2.0J

(1)アプリケーション構成ファイルを使用する方法
前述の.NET製品には、アプリケーション構成ファイル(app.config、web.config、app.xaml)を使用して、コントロールが出力する和暦を独自に定義できる機能が用意されています。元号が変更された場合は、構成ファイルに新しい元号の情報を記載することで、対応が可能です。

構成ファイルの設定内容は、アプリケーションの起動時に読み込まれ、動作に反映されます。そのため、アプリケーション側でコード変更や再コンパイル(再ビルド)を行う必要がなく、アプリケーションを配布した後でも自由に設定を変更することができます(※)。
また、構成ファイルはXML形式のテキストファイルですので、エンドユーザーがメモ帳などを使用して編集することも可能です。

※ 設定を反映するには、アプリケーションの再起動が必要です。また、app.xamlを使用する製品(WPF用またはSilverlight用の製品)の場合は、アプリケーションの再ビルドと再配布が必要です。

構成ファイルの記載内容
アプリケーション構成ファイルに記載する内容は、製品やバージョンによって異なります。詳細については、使用されている製品のヘルプ(スタートメニューなどから表示できます)をご覧ください。「和暦」「年号」「平成」「構成ファイル」などのキーワード検索で見つかるトピックに記載されています。

記載内容の例については、以下のヘルプトピックをご覧ください。

SPREAD for Windows Forms 8.0J - 和暦年号の取得と設定

SPREAD for Windows Forms 10.0J - 和暦年号の取得と設定

SPREAD for Windows Forms 11.0J - 和暦年号の取得と設定

SPREAD for Windows Forms 12.0J - 和暦年号の取得と設定

SPREAD for WPF 2.0J - 和暦年号のカスタマイズ

InputMan for Windows Forms 8.0J - 和暦表示の設定

InputMan for Windows Forms 10.0J - 和暦表示の設定

InputMan for ASP.NET 8.0J - Web.configの設定

InputMan for ASP.NET 10.0J - Web.configの設定

InputMan for WPF 2.0J - 和暦表示の設定を変更する

MultiRow for Windows Forms 8.0J - 和暦表示の設定

MultiRow for Windows Forms 10.0J - 和暦表示の設定

CalendarGrid for Windows Forms 1.0J - 和暦

CalendarGrid for Windows Forms 2.0J - 和暦

PlusPak for Windows Forms 8.0J - 和暦表示の設定

PlusPak for Windows Forms 10.0J - 和暦表示の設定


構成ファイルの配置場所
アプリケーション構成ファイルは、アプリケーションの実行ファイル(EXEやDLL)と同じフォルダに配置します。
構成ファイルの仕様や使用方法については、MSDNライブラリ等の各種資料をご覧ください。

アプリケーション構成ファイル

http://msdn.microsoft.com/ja-jp/library/ms229689.aspx

構成ファイルの簡単な読み込み書き込み方法について

http://msdn.microsoft.com/ja-jp/library/cc440847.aspx

ASP.NET アプリケーションで使用する Web.config ファイルの作成方法

http://support.microsoft.com/kb/815179/ja


構成ファイルを配置しない場合の動作
構成ファイルを配置しない場合は、製品内に実装されている和暦の情報で、元号が出力されます。
後述(2)のサービスパックが適用されていない状態であれば、1989年1月8日以降の元号は、基本的にずっと「平成」で表示されます。
また、これらの製品はWindowsのレジストリ情報に保存されている和暦情報を使用していませんので、Windows側に新元号の情報が追加されても、製品側では新元号は出力されません。

InputManの自由書式入力機能
InputMan for Windows FormsやInputMan for ASP.NETには、フリーフォーマットで入力された文字列を日付に変換する、自由書式入力機能が用意されています。

例:InputMan for Windows Forms 10.0Jの場合
例:InputMan for ASP.NET 10.0Jの場合

この機能では、入力された文字列を日付データに変換する際に、InputMan for Windows Formsでは.NET Frameworkの、InputMan for ASP.NETではJavaScriptの機能を使用しています。そのため、文字列に和暦が含まれていた場合の動作は、.NET FrameworkやJavaScriptエンジンの動作に依存します。
日付コントロールなどの書式を自由書式入力に設定している場合、アプリケーション構成ファイル側で新元号の設定を行っていても、.NET FrameworkやJavaScriptエンジン側で新元号の対応が行われなければ、新しい元号の入力には対応できません。

SPREAD for Windows Formsの日付時刻型セル
SPREAD for Windows Formsの日付を出力する機能には、「日付時刻型セル」と「GcDateTime型セル」の2つがあります。日付時刻型セルはすべてのバージョンに用意されていますが、GcDateTime型セルはバージョン7.0Jで追加された機能です。
日付時刻型セルは、GcDateTime型セルと異なり、独自の和暦機能を持っていません。.NET FrameworkのJapaneseCalendarクラスなどを利用して、和暦を出力しています。
ただし、SPREAD for Windows Forms 7.0J以降のバージョンであれば、前述のアプリケーション構成ファイルを使用する方法で、日付時刻型セルおよびGcDateTime型セルが出力する和暦を独自に定義できます。
SPREAD for Windows Forms 5.0J以前のバージョンや、アプリケーション構成ファイルを配置しない場合には、日付時刻型セルは後述の「2. .NET Frameworkの和暦機能を使用する製品」の内容で動作します。


(2)製品のサービスパック(修正版)を適用する方法
製品のサポート期間内であれば、新元号の情報を実装したサービスパックが提供されます(※)。新元号に対応したサービスパックを適用することで、前述(1)の構成ファイルを使用しなくても、アプリケーション上で新元号が出力できるようになります。

※ サポート期間が終了している製品については、サービスパックは提供されません。
※ サービスパックの提供時期は2019年4月中旬の予定です。

なお、既存のプロジェクトにサービスパックを適用する場合は、移行ツールなどを使用したプロジェクトの移行と、アプリケーションの再ビルドが必要になります。サービスパックのモジュール(DLLファイルなど)を入れ替えるだけでは適用できませんので、あらかじめご注意ください。
具体的な移行の手順については、各製品のヘルプドキュメントなどをご参照ください。



2. .NET Frameworkの和暦機能を使用する製品
前述1.以外の.NET製品(12.0J SP1以前のActiveReports for .NETや、SPREAD for ASP.NETなど)は、独自の和暦機能を持っていません。.NET FrameworkのJapaneseCalendarクラスなどを利用して、和暦を出力します。

これらの製品で新しい元号を出力するには、.NET Framework側での対応が必要です。具体的には、マイクロソフト社がJapaneseCalendarクラス(または同クラスが使用するWindows APIやレジストリ情報など)に新しい元号の情報を追加し、それがWindows Updateなどによって運用環境へ適用されれば、それ以降は新元号の出力が可能となります。

参考情報:
新元号への対応について - Microsoft mscorp

https://www.microsoft.com/ja-jp/mscorp/newera/default.aspx


FlexGrid for WinFormsの対応方法
FlexGrid for WinForms(FlexGrid for .NET、FlexGrid for Windows Forms)で和暦を表示するには、JapaneseCalendarクラスを使用して和暦の文字列を取得し、FlexGridのオーナー描画機能で画面上に表示する、という方法になります。
詳細については、製品ヘルプの「和暦で表示する」をご覧ください。

ActiveReports for .NETの対応方法
ActiveReports for .NET 12.0JのSP2(v12.2.14271.1)以降では、アプリケーション構成ファイルを使用して、出力する和暦を独自に定義できる機能が用意されています。詳細については、以下のナレッジ文書をご覧ください。

日付データを和暦で出力する方法は?


ActiveReports for .NET 11.0Jでの設定例については、以下のナレッジ文書をご覧ください。

日付データを和暦で出力する方法は?

関連情報
キーワード
新元号