
DateTime tmpDate = StrToDateTime("2015/4/1"); // 畫面上的 TextBox
String tmpTime = "15:33:05"; // 畫面上的 TextBox
// ↑
// 以上取得值固定不能變得情況下
// 要將使用者輸入的整卻組合回 DateTime ↓
tmpStr = tmpDate.ToString("yyyy/MM/dd") + "-" + tmpTime; // 因為 ParseExact 微軟設計的很智障
// 明明 DateTime.TryParse 會很聰明的判讀... 4/1 自動補0...
// 但是 DateTime.ParseExact 很蠢的不會...只好再強制轉回字串....
String format = "yyyy/MM/dd-HH:mm:ss";
DateTime tmpDateTime = DateTime.ParseExact(tmpStr, format, System.Globalization.CultureInfo.InvariantCulture);
return tmpDateTime;
請問有沒有更好的寫法.. 種覺得中間那段有點蠢
------解决思路----------------------
你可以这样
public class ExtDateTimer
{
public DateTime ToDateTime(DateTime this obj,string format )
{
DateTime tmpDateTime = DateTime.ParseExact(tmpStr, format, System.Globalization.CultureInfo.InvariantCulture);
return tmpDateTime;
}
}
然后你调用只要这样了DateTime xxx= tmpStr.ToDateTime("yyyy/MM/dd-HH:mm:ss");
上面的方法自己可以再重载进行改造,总有一个适合你的
------解决思路----------------------
直接转化成Minutes数字
比如07:30就是7*60+30=450,这个450就是你的下拉列表的value
这样取时间只需要DateTime.Now.Date.AddMinutes(450)
------解决思路----------------------
DateTime tmpDate = StrToDateTime("2015/4/1");
String tmpTime = "15:33:05"; // 畫面上的 TextBox
return tmpDate.AddTicks(TimeSpan.Parse(tmpTime).Ticks);
//这样感觉好点?