1

以下代码 d 具有当前日期。根据当前的语言环境,它将返回一个日期。

Dim d As Date = Date.Today

注意:我不想检查日期是否有效,而是想知道它是 'dd-MM-yyyy'、'MM-dd-yyyy' 还是任何其他日期格式..

编辑(2012 年 6 月 29 日 - 星期五):

我问这个问题的原因是因为我厌倦了尝试在 ASP.NET 中处理日期。我在本地 PC 上构建了一个项目,其中日期为“dd/MM/yyyy”,一旦我将其上传到生产服务器(通常在美国,因此为 MM/dd/yyyy),代码就会中断。

所以我通常通过将日期转换为 yyyyMMdd 格式来处理日期,并将它们保存在数据库中。这是我最接近无异常编码的方式。

在这种情况下,没有办法从返回的日期字符串中获取格式是有道理的。因此,我将继续我的方法。

4

4 回答 4

2

Date.Today是一个DateTime,而不是一个字符串。因此,它没有固有的格式。

于 2012-06-26T15:56:18.203 回答
0

它将返回一个Date,我相信它是 VB 的别名DateTime。(如果不是,只需DateTime明确使用惯用的 .NET 而不是使用旧的 VB 类型。)

DateTime本身没有格式,int就像十进制或十六进制一样。只有当您将值转换为字符串时才会应用格式,然后取决于您如何将其转换为字符串。在您真正需要之前,您不应该使用字符串转换,然后您应该控制格式,使其按照您想要的方式工作。

尽可能早地将文本数据转换为其“自然”类型,并尽可能长时间地保持该类型。例如,在 SQL 查询中传递值时避免转换为字符串 - 相反,使用参数化 SQL,您可以将参数值指定DateTime.

于 2012-06-26T15:57:04.413 回答
0

您想知道的可以在以下位置找到:

CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern

这是您调用时将使用的格式字符串

d.ToShortDateString()

于 2012-06-26T15:57:24.150 回答
-1

你需要被告知;没有其他办法。举个例子:

6/12/2012  

它在dd/mm/yyyymm/dd/yyyy格式中有效

如果您事先不知道语言环境/格式,您会选择哪一种?

日期值没有内在格式。换句话说,您可以将日期格式化为您需要的任何字符串表示形式,但是从字符串返回到日期值的相反转换要求您知道接收此日期字符串的格式。

于 2012-06-26T15:55:00.887 回答