背景: 別のバックエンド システムからデータを受信するシステムがあります。そのデータの表示を処理し、特定のものをどのように表示するかを制御する独自の XML テンプレートを用意しています (つまり、列ヘッダーが何であるかを指示する独自の列テンプレートを用意しています)。バックエンドからの値に適用されるこれらの列テンプレートのマスクを提供する機能。以下は、私が問題を抱えているシナリオです。
問題: 単純な文字列形式が機能していないようです。4 桁の STRING 値 (つまり "1444") を時刻形式 (つまり "14:44") でフォーマットしたいと思います。私はもう試した:
String.Format("{0:00:00}", "1444")
入力が STRING であることの重要性に注意してください。int 値を指定すると、フォーマットが機能します。これを使用できない理由は、バックエンドから受け取るすべてのデータが文字列形式であり、これを汎用にしたいためです (したがって、キャストは実際にはオプションではありません)。
一般的に言うと、独自の XML テンプレートで次のようなマスクを指定したいということです。
<MyColumnTemplate Id="MyColumn" Mask="00:00" />
文字列値の文字列形式呼び出しでそのマスクを使用するには? マスクが失敗した場合は、単純に元の値を返すことができます (String.Format() メソッドがデフォルトで既に行っているように)。
編集:明確にするために、コードで実行できるようにしたいことの簡略化されたバージョンを次に示します。
string inputValue = "1444";
string maskValueFromXml = "00:00";
string mask = "{0:" + maskValueFromXml + "}";
string myDesiredEndResult = String.Format(mask, inputValue);