什麼.NET
功能將轉換爲DateTime
,但有一個默認值,如果輸入的是空白?如果輸入爲空,如何轉換爲DateTime但具有默認值?
例如。
DateTime dtTest = Convert.ToDateTime(getDateString());
如果getDateString()
返回一個空字符串Convert.ToDateTime
拋出異常。
我該如何使用默認值"9:00AM"
而不是空字符串?這是TryParse
可以使用的東西嗎?
什麼.NET
功能將轉換爲DateTime
,但有一個默認值,如果輸入的是空白?如果輸入爲空,如何轉換爲DateTime但具有默認值?
例如。
DateTime dtTest = Convert.ToDateTime(getDateString());
如果getDateString()
返回一個空字符串Convert.ToDateTime
拋出異常。
我該如何使用默認值"9:00AM"
而不是空字符串?這是TryParse
可以使用的東西嗎?
使用DateTime.TryParse
並且如果解析失敗,您可以分配DateTime.MinValue.AddHours(9)
以獲得帶有最小日期的(9:00AM)
時間。
string str = "";
DateTime temp;
DateTime dt = DateTime.TryParse(str, out temp) ? temp : DateTime.MinValue.AddHours(9);
上面的代碼你dt
對象將舉行{01/01/0001 9:00:00 AM}
我使用了一種叫做三元聲明。你可以在這裏看一個例子:MSDN
string myDate = getDateString();
DateTime dtTest = Convert.ToDateTime(String.IsNullOrEmpty(myDate) ? "my default value" : myDate);
三元聲明如下:
String.IsNullOrEmpty(myDate) ? "my default value" : myDate
它可以作如下解讀:
如果字符串爲null或空,然後使用「我的默認值」,否則使用myDate。
你應該分成兩個部分是:
例如:
string text = GetDateString(); // Name converted to follow .NET conventions
if (string.IsNullOrEmpty(text))
{
text = "9:00AM"; // Or whatever
}
DateTime parsed;
if (!DateTime.TryParse(text, out parsed))
{
parsed = // some default here
}
還要考慮使用TryParseExact
代替TryParse
,如果你知道你期待什麼樣的格式 - 和文化要分析它。
具有默認字符串值是隻是有一個默認DateTime
值,而不是費心去分析,如果文本是空的選擇:
string text = GetDateString(); // Name converted to follow .NET conventions
DateTime parsed;
// This will only try to parse if text is non-null and non-empty
if (string.IsNullOrEmpty(text) || !DateTime.TryParse(text, out parsed))
{
parsed = // some default here
}
只寫返回默認值時的包裝功能驗證如下失敗,
public DateTime Validate(string dateString)
{
DateTime dt;
if(DateTime.TryParse(dateString, out dt))
return dt;
else
return DateTime.Now; //default value
}
您無法設置DateTime dt = null – 2013-02-12 07:14:22
@TaronPro:謝謝 – 2013-02-12 07:15:28
DateTime ToDateTime(string sourceValue){
DateTime result;
if(DateTime.TryParse(sourceValue, out result)
return result
else{
result=new DateTime(2013,1,1) //default value, whatever you want
return result
}
}
就這樣做:
DateTime MyDate;
DateTime ParsedDate;
if (DateTime.TryParse(txtNotificationDate.Text.Trim(), out ParsedDate))
{
MyDate= ParsedDate;
}
else
{
MyDate = DateTime.Now;
}
上午9點在哪一天? – 2013-02-12 07:05:33
確實,你可以使用'TryParse',但我不確定'9:00 AM'是否真的是'DateTime',或者你的意思是當時的日期。 – V4Vendetta 2013-02-12 07:05:52