1

我有一个值为“08-06-2008”的字符串。我希望结果看起来像“08-06-08”。有没有办法做到这一点?我试过 CDate 但这只给了我 8/06/2008 并不能解决问题。

4

3 回答 3

5

将其解析Date为字符串并返回:

Dim dt As Date = Date.ParseExact("08-06-2008", "MM-dd-yyyy", CultureInfo.InvariantCulture)
Dim result As String = dt.ToString("MM-dd-yy",  CultureInfo.InvariantCulture)

由于这是一种普通格式,您也可以省略格式字符串并Date.Parse直接使用:

Dim dt As Date = Date.Parse("08-06-2008", CultureInfo.InvariantCulture)

我曾经CultureInfo.InvariantCulture避免本地化问题,通常您当前的文化用于Parse/ParseExactToString.

请参阅:自定义日期和时间格式字符串

于 2013-09-05T14:55:08.723 回答
4

首先,避免CDate。它是 VB6 的后遗症,几乎可以肯定比使用 .net 等效的效率低。

以下应该给你正确的答案:

string value = DateTime.ParseExact("08-06-2008", "dd-MM-yyyy").ToString("dd-MM-yy")

请注意,您现有的日期格式不明确,因此我无法判断您是指 8 月 6 日还是 6 月 8 日 - 这就是我使用ParseExactover的原因ParseParseExact效率也稍微高一些,因为它告诉框架使用哪种格式,而不是猜测。

于 2013-09-05T14:55:28.063 回答
1

试试这个

   Dim FormatString As String = ""
   Dim SampleDate As DateTime
    SampleDate = Now()
    FormatString  = Format(SampleDate,"dd-MM-yy")
于 2013-09-05T15:02:48.233 回答