次の値を持つ 2 つの文字列を指定します。
31/05/2013 0:00:00
21:22
DateTime
それらをデータ型に結合して取得する最も効率的な方法は何ですか:
31/05/2013 21:22
最初の文字列「0:00:00」の時刻部分は無視され、2 番目の文字列の「時刻」が使用されます。
TimeSpan
オブジェクトを使用して、DateTime.Add(yourTimeSpan);
例えば
DateTime dt = new DateTime(2013,05,31);
var dts = dt.Add(new TimeSpan(0, 21, 22, 0, 0));
答えを少し拡張すると、最初に日付と時刻を解析できます。
DateTime dt = DateTime.Parse("05/31/2013 0:00:00");
TimeSpan ts = TimeSpan.Parse("21:22");
var dts = dt.Add(ts);
...覚えておいてください、私は悪い日付/時刻値をチェックしていません。値が実際の日付/時刻であるかどうか不明な場合は、DateTime.TryParse
適切に使用および処理してください。
2 桁の月と日、4 桁の年、日付の後にスペースがあると安全に想定できる場合:
var date = "31/05/2013 0:00:00";
var time = "21:22";
var dateTime = DateTime.Parse(date.Substring(0,11) + time);
入力形式に関する仮定がしっかりしていない場合は、代わりに正規表現を使用して日付を抽出できますSubstring
。
本当にstringのみを扱っている場合は、次のようになります。
string strDate = "31/05/2013 0:00:00";
string strTime = "21:22";
string strDateTime = strDate.Split(' ')[0] + " " + strTime;