首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在isDate()或Datetime.TryParse中指定Datetime.TryParse

在isDate()或Datetime.TryParse中指定Datetime.TryParse
EN

Stack Overflow用户
提问于 2014-11-26 12:33:07
回答 2查看 1.4K关注 0票数 1

我需要识别字符串是否是dd.mm.yyyy格式的日期。

但是,应用程序运行在具有不同语言设置的系统上。因此,在“有效”字符串上使用isDateTryParse,在德语系统上返回true (因为这些函数使用CultureInfo.CurrentCulture),并在带有英语系统设置的系统上返回false。

是否有一个函数可以检查字符串是否是指定CultureInfo的有效日期?

当然,我总是可以使用regex来验证这一点,但我无法想象这是必要的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-26 12:56:24

如果您知道字符串的格式并且这不会改变,那么应该使用DateTime.TryParseExact使用InvariantCulture

代码语言:javascript
复制
Imports System.Globalization

Dim dateString As String = "31.12.1901"
Dim dateValue As Date
Dim dateFormat As String = "dd.MM.yyyy"

If DateTime.TryParseExact(dateString, dateFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, dateValue) Then
    'In the format expected
Else
    'NOT in the format expected
End If
票数 2
EN

Stack Overflow用户

发布于 2014-11-26 12:48:27

我似乎错过了TryParse方法的重载:

代码语言:javascript
复制
Dim myculture As New System.Globalization.CultureInfo("en-US")
myculture.DateTimeFormat.ShortDatePattern = "dd/MM/yyyy"
myculture.DateTimeFormat.LongDatePattern = "dd/MM/yyyy"

If DateTime.TryParse("27/10/2010", myculture, Globalization.DateTimeStyles.None, New DateTime) Then

'Currect Date

End If

效果很好。(详见http://forums.asp.net/t/1443698.aspx?in+ASP+NET+vb+IsDate+function+is+working+wrongly+ )

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

https://stackoverflow.com/questions/27149367

复制
相关文章

相似问题

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