3

次の値を持つ 2 つの文字列を指定します。

31/05/2013 0:00:00
21:22

DateTimeそれらをデータ型に結合して取得する最も効率的な方法は何ですか:

31/05/2013 21:22

最初の文字列「0:00:00」の時刻部分は無視され、2 番目の文字列の「時刻」が使用されます。

4

8 に答える 8

8

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適切に使用および処理してください。

于 2013-05-31T19:32:54.297 に答える
0

2 桁の月と日、4 桁の年、日付の後にスペースがあると安全に想定できる場合:

var date = "31/05/2013 0:00:00";
var time = "21:22";
var dateTime = DateTime.Parse(date.Substring(0,11) + time);

入力形式に関する仮定がしっかりしていない場合は、代わりに正規表現を使用して日付を抽出できますSubstring

于 2013-05-31T19:46:13.333 に答える
0

本当にstringのみを扱っている場合は、次のようになります。

string strDate = "31/05/2013 0:00:00";
string strTime = "21:22";
string strDateTime = strDate.Split(' ')[0] + " " + strTime;
于 2013-05-31T19:44:27.000 に答える