首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DateTime TryParse问题

DateTime TryParse问题
EN

Stack Overflow用户
提问于 2010-11-16 07:04:35
回答 3查看 7.2K关注 0票数 4
代码语言:javascript
复制
string date = txtWorkingDate.Text;
            DateTime dateTime = DateTime.MinValue;

            if (DateTime.TryParse(date, out dateTime))
            {
                args.IsValid = true;
            }
            else
                args.IsValid = false;

txtWorkingDate.Text类似于"dd.MM.yyyy“,因为如果日期不像"dd.MM.yyyy”,则此验证始终为false。我如何检查像"dd.MM.yyyy","MM/dd/yyyy“这样的日期类型,因为它们都是有效的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-11-16 07:06:58

通过使用this overload并提供可接受的格式:

代码语言:javascript
复制
string date = txtWorkingDate.Text;
DateTime dateTime;
string[] formats = new[] { "dd.MM.yyyy", "MM/dd/yyyy" };
if (DateTime.TryParseExact(date, formats, CultureInfo.InvariantCulture, DateTimeStyles.None, out dateTime))
{
    args.IsValid = true;
}
else
{
    args.IsValid = false;
}
票数 18
EN

Stack Overflow用户

发布于 2010-11-16 07:07:38

代码语言:javascript
复制
System.Globalization.CultureInfo cultureinfo =  
        new System.Globalization.CultureInfo("en-gb"); 
    DateTime dt = DateTime.Parse("13/12/2009", cultureinfo); 

假设您知道区域性,则需要指定区域性。

票数 2
EN

Stack Overflow用户

发布于 2010-11-16 07:07:55

您可以使用

代码语言:javascript
复制
DateTime.TryParse(
    string s,
    IFormatProvider provider,
    DateTimeStyles styles,
    out DateTime result
)

过载。

而且,你不需要if,你可以简单地写成

代码语言:javascript
复制
args.IsValid = DateTime.TryParse(...);

因为DateTime.TryParse()已经返回了一个布尔值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4189739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档