以下代码,d具有当前日期。根据当前的区域设置,它将返回日期。
Dim d As Date = Date.Today
注意:我不想检查日期是否有效,而是知道它是否是'dd-MM-yyyy','MM-dd-yyyy'或任何其他日期格式..
我问这个问题的原因是因为我厌倦了尝试来处理ASP.NET中的日期。我在我的本地PC上构建了一个项目,日期为“dd / MM / yyyy”,一旦我将其上传到生产服务器(通常在美国,因此MM / dd / yyyy),代码就会中断。
所以我通常通过将日期转换为yyyyMMdd格式来处理日期,并将它们保存在数据库中。这是我接近无异常编码的最接近的。
在这种情况下,有意义的是无法从返回的日期字符串中获取格式。因此,我将继续我的方法。
答案 0 :(得分:2)
Date.Today
是DateTime
,不是字符串。因此,它没有固有的格式。
答案 1 :(得分:0)
它将返回Date
,我相信是DateTime
的VB别名。 (如果不是这样,只需明确地使用DateTime
来代替.NET,而不是使用传统的VB类型。)
DateTime
值本身没有格式,只有int
为十进制或十六进制。只有当您将值转换为应用格式的字符串时,它才会依赖于如何将其转换为字符串。在真正需要之前,不应该使用字符串转换,然后您应该控制格式,使其按照您希望的方式工作。
尽可能早地将文本数据转换为其“自然”类型,并尽可能长时间保持该类型。例如,避免在SQL查询中传递值时转换为字符串 - 而是使用参数化SQL,您可以将参数值指定为 a DateTime
。
答案 2 :(得分:0)
你想知道的是:
CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern
这是您致电
时使用的格式字符串 d.ToShortDateString()
答案 3 :(得分:-1)
你需要被告知;别无他法。举个例子:
6/12/2012
它有效dd/mm/yyyy
或mm/dd/yyyy
格式
如果您事先不知道区域设置/格式,您会选择哪一个?
日期值不具有内在格式。换句话说,您可以将日期格式化为您需要的任何字符串表示形式,但是从字符串返回到Date值的相反转换要求您知道接收此日期字符串的格式。