我从我的页面回来了一个字符串,我想确定它是一个约会。这是我到目前为止(它的工作原理),我只是想知道这是否是“最好”的方法。我正在使用.NET 4.
int TheMonth =0;
int TheDay = 0;
int TheYear = 0;
DateTime NewDate;
var TheIncomingParam = Request.Params.Get("__EVENTARGUMENT").ToString();
char[] TheBreak = { '/' };
string[] TheOutput = TheIncomingParam.Split(TheBreak);
try { TheMonth = Convert.ToInt32(TheOutput[0]); }
catch { }
try { TheDay = Convert.ToInt32(TheOutput[1]); }
catch { }
try { TheYear = Convert.ToInt32(TheOutput[2]); }
catch { }
if (TheMonth!=0 && TheDay!=0 && TheYear!=0)
{
try { NewDate = new DateTime(TheYear, TheMonth, TheDay); }
catch { var NoDate = true; }
}
答案 0 :(得分:13)
使用Parse
结构中定义的DateTime
方法之一。
如果字符串不可解析,这些将抛出异常,因此您可能希望使用其中一种TryParse
方法(不是很漂亮 - 它们需要out参数,但更安全):
DateTime myDate;
if(DateTime.TryParse(dateString,
CultureInfo.InvariantCulture,
DateTimeStyles.None,
out myDate))
{
// Use myDate here, since it parsed successfully
}
如果您知道传入日期的确切格式,可以尝试使用带有日期和时间格式字符串的ParseExact
或TryParseExact
(standard或custom )当试图解析日期字符串时。
答案 1 :(得分:2)
DateTime.TryParse和DateTime.TryParseExact怎么样?
第一个使用当前的文化日期格式。
答案 2 :(得分:1)
.NET为我们提供了datetime.parse
http://msdn.microsoft.com/en-us/library/1k1skd40.aspx
和datetime.tryparse
http://msdn.microsoft.com/en-us/library/ch92fbc1.aspx
这两种方法都是从字符串中解析日期的好方法
答案 3 :(得分:0)
答案 4 :(得分:0)
我只想TryParse输入字符串:
private bool ParseDateString()
{
var theIncomingParam = Request.Params.Get("__EVENTARGUMENT").ToString();
DateTime myDate;
if (DateTime.TryParse(theIncomingParam, CultureInfo.InvariantCulture, DateTimeStyles.None, out myDate))
{
int TheMonth = myDate.Month;
int TheDay = myDate.Day;
int TheYear = myDate.Year;
// TODO: further processing of the values just read
return true;
}
else
{
return false;
}
}