使用DateTime.TryParseExact
这样:
public void addMeeting()
{
var dateFormats = new[] {"dd.MM.yyyy", "dd-MM-yyyy", "dd/MM/yyyy"};
Console.WriteLine("Add a schedule for specific dates: ");
string readAddMeeting = Console.ReadLine();
DateTime scheduleDate;
bool validDate = DateTime.TryParseExact(
readAddMeeting,
dateFormats,
DateTimeFormatInfo.InvariantInfo,
DateTimeStyles.None,
out scheduleDate);
if(validDate)
Console.WriteLine("That's a valid schedule-date: {0}", scheduleDate.ToShortDateString());
else
Console.WriteLine("Not a valid date: {0}", readAddMeeting);
}
该方法返回一个bool
表明它是否能够被解析与否,你传递一个DateTime
变量作为out
参数,如果日期是其中将被初始化有效。
请注意,我使用DateTimeFormatInfo.InvariantInfo
,因为您不想使用本地DateTime
格式,但可以在任何文化中工作。否则/
dd/MM/yyyy
将被您当前的文化的日期分隔符替换。 Read
循环在你的格式排列,直到你成功地解析输入,如果没有成功,直到最后搞定。 – kirotab
https://msdn.microsoft.com/en-us/library/ch92fbc1(v=vs.110).aspx在如何使用tryparse本身有一个很好的例子 – Thomas