私は次の文字列"2017-2"
を持っており、"2017-02"
とフォーマットする必要があります。数字と文字を含む文字列をフォーマットする方法
var period = "2017-2";
var periodFormatted = String.Format("{0:0000-00}", period);
periodFormattedは
"2017-02"
としてフォーマット期間を取得するための正しい構文は何ですか"2017-2"
を返しますか?
私は次の文字列"2017-2"
を持っており、"2017-02"
とフォーマットする必要があります。数字と文字を含む文字列をフォーマットする方法
var period = "2017-2";
var periodFormatted = String.Format("{0:0000-00}", period);
periodFormattedは
"2017-02"
としてフォーマット期間を取得するための正しい構文は何ですか"2017-2"
を返しますか?
string.Format
は、あなたの文字列に数字が含まれていることを知らない(または気にする)ので、あなたはそのように直接フォーマットすることはできません。あなたは文字列を分割し、最後の部分を数字として解析することもできます。たとえば:
var period = "2017-2";
var parts = period.Split('-');;
var periodFormatted = $"{parts[0]}-{int.Parse(parts[1]):D2}";
しかし、あなたはおそらく書式設定些細をしただろうと、最初の場所に適切なDateTime
オブジェクト(または年と月の値を表すカスタム型)としてperiod
値を持つ必要があります。
入力-をDateTime
として解析し、2番目の手順でフォーマットすることができます。
string period = "2017-2";
DateTime temp = DateTime.ParseExact(period, "yyyy-M", CultureInfo.InvariantCulture);
string result = temp.ToString("yyyy-MM");
注:M
は0
を招くことなく、月を定義し、MM
は常に2桁の月です。
参考: `指定されたフォーマットに基づいて文字列へのオブジェクトの値を変換し、別のstring.`にそれらを挿入します。文字列のString.Formatのを呼び出すhttps://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings
はmeaningless.The方法の説明です。あなたが持っているものは期間ではなく、誰かが期間として解釈しても解釈しなくてもよい文字列です。 –
DateTimeのインスタンスを使用してみませんか?そこに期間を読み込むと 'dateTimeInstance.ToString(あなたの書式") '(あなたの場合はyyyy-MM)を使うことができます – Dragonvil
*ピリオド*を表現したい場合は、構造体やタプル年と月を含む。 DateTimeを使用して日の部分を無視することもできます –