将字符串日期转换为显示2年的数字

时间:2013-09-05 14:52:00

标签: vb.net

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

3 个答案:

答案 0 :(得分: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中使用。

请参阅:Custom Date and Time Format Strings

答案 1 :(得分:4)

首先,避免使用CDate。它是VB6的宿醉,几乎肯定比使用.net等效的效率低。

以下内容应该给出正确答案:

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

请注意,您现有的日期格式含糊不清,因此我无法判断您是否意味着8月6日或6月8日 - 这就是我使用{{{ 1}}超过ParseExactParse也稍微高效,因为它告诉框架使用哪种格式,而不是必须猜测。

答案 2 :(得分:1)

试试这个

   Dim FormatString As String = ""
   Dim SampleDate As DateTime
    SampleDate = Now()
    FormatString  = Format(SampleDate,"dd-MM-yy")