我有個問題。
這不起作用
> var from = ""; > StartDTime = Convert.ToDateTime(from);
這是作業
> var from = "2021-10-05"; > StartDTime = Convert.ToDateTime(from);
有時我發送日期值,但有時不發送日期值。在那個時間from變數中作為空字串傳遞。我想設定 if from variable is = "" 然后需要設定默認日期值。那么我該如何解決這個問題?。請幫幫我。謝謝
uj5u.com熱心網友回復:
一種安全的方法是:
StartDTime = string.IsNullOrEmpty(from) ? DateTime.Now : DateTime.Parse(from);
但是,如果您可以控制傳遞“from”變數的代碼,則可以將其宣告為可為空的 DateTime,那么您的代碼將如下所示:
DateTime? from = null;
var StartDTime = from.HasValue ? from.Value : DateTime.Now;
簡而言之:
StartDTime = from ?? DateTime.Now;
uj5u.com熱心網友回復:
DateTime.TryParse 將為您完成這項作業:例如:
DateTime dateTime;
var from = "";
DateTime.TryParse(from, out dateTime);
uj5u.com熱心網友回復:
單行,只有您指定的驗證:
StartDTime = from == "" ? new DateTime() : Convert.ToDateTime(from);
uj5u.com熱心網友回復:
它不優雅,但有效。
var from = "";
if(from == ""){ from = DateTime.MinValue.ToString(); }
DateTime StartDTime = Convert.ToDateTime(from);
但我認為可以為空的 DateTime 會更優雅,如下所示:
var from = null;
DateTime? StartDTime = from;
或者您可以設定默認日期,如下所示:
var from = null;
DateTime? StartDTime = from ?? YourDefaultDate;
uj5u.com熱心網友回復:
Convert方法要么成功地轉換傳遞給它的字串,要么拋出一個錯誤,這就是它應該作業的方式。對于大多數資料型別,還有一些TryParse方法根據轉換是否成功回傳真/假,并有一個輸出變數,DateTime.MinValue如果失敗則回傳。這就是我將如何處理您的情況:
DateTime startDTime;
string from = "";
if (!DateTime.TryParse(from, out startDTime)){
startDTime = DateTime.Now;
}
這會將 startTime 設定為傳入的日期,但如果沒有傳遞日期,則將其設定為當前日期和時間 - 如果您想要不同的默認值,則替換new DateTime()并且如果您的默認值應為 0001 年 1 月 1 日,則您可以直接使用 TryParse 部分,因為這是失敗的 TryParse 的自動默認值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/338684.html
標籤:C# asp.net 。网 asp.net-mvc .net核心
