あなたはこのようなことをすることができます:
string input = "22:45";
var timeFromInput = DateTime.ParseExact(input, "H:m", null, DateTimeStyles.None);
string timeIn12HourFormatForDisplay = timeFromInput.ToString(
"hh:mm:ss tt",
CultureInfo.InvariantCulture);
var timeInTodayDate = DateTime.Today.Add(timeFromInput.TimeOfDay);
そして今、考慮すべき重要な部分:
- 解析の形式はを使用する
"H:m"
ため、1桁の時間または分の接頭辞にゼロを使用しない24H値を想定しています。
- 印刷用の形式は
"hh:mm:ss tt"
、希望する形式であるように見えるため使用CultureInfo.InvariantCulture
しますが、実際にはAMまたはPMであるAM/PM指定子を確実に取得するために使用する必要があります。別のカルチャを使用する場合、AM/PM指定子が変更される可能性があります。
- 完全な日付と時刻は、時刻がゼロの今日の日付を返すことに基づいて作成され
DateTime.Today
、入力から読み取った時刻を追加するだけです。
別の日付から最終的な日付と時刻を作成するには、代わりに次を使用できます。
var timeInAnotherDate = new DateTime(2000, 1, 1).Add(timeFromInput.TimeOfDay);
参考資料: