如何检查字符串格式

时间:2016-07-06 10:31:30

标签: c# console-application

我正在慢慢学习使用C#做一些简单的控制台应用程序,现在遇到了一个我无法解决的问题。我已经尝试在Stack Overflow / Internet上搜索解决方案,但要么我不知道如何正确搜索它,要么我找不到答案。

情况:我正在创建一个简单的控制台应用,向用户询问以下内容:名字,姓氏,年龄。

通过以下代码向用户介绍了每个提示(问题):

System.Console.Write("What is your date of birth? ");
String dob = System.Console.ReadLine();

我已经为名称做了一个简单的检查,如果它们在1-30个字符之间,如果它们是,则应用程序将结果写入文本文档。

问题:如何检查出生日期是否按以下格式编写: DD.MM.YYYY

2 个答案:

答案 0 :(得分:2)

如果它是有效日期,则会返回:

String dob = System.Console.ReadLine();
DateTime dtResult;
bool IsValid = DateTime.TryParseExact(dob, "dd.MM.yyyy", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out dtResult);

但是在例如1月1日你无法检测到一个月/天的交换。如果day > 12

,那只会导致错误

答案 1 :(得分:1)

TryParseExact是你的方式:

DateTime dt = new DateTime();
bool success = DateTime.TryParseExact(dob, "dd.MM.yyyy", CultureInfo.CurrentCulture, 
                                        DateTimeStyles.AssumeLocal, out dt);

如果dob的格式正确,则isInCorrectFormat将为truedt将保留正确的解析DateTime对象。