我有一个字符串,其值为“08-06-2008”。我希望结果看起来像“08-06-08”。有没有办法做到这一点?我已经尝试过CDate,但这只给了我8/06/2008,但没有解决问题。
答案 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/ParseExact
和ToString
中使用。
答案 1 :(得分:4)
首先,避免使用CDate。它是VB6的宿醉,几乎肯定比使用.net等效的效率低。
以下内容应该给出正确答案:
string value = DateTime.ParseExact("08-06-2008", "dd-MM-yyyy").ToString("dd-MM-yy")
请注意,您现有的日期格式含糊不清,因此我无法判断您是否意味着8月6日或6月8日 - 这就是我使用{{{ 1}}超过ParseExact
。 Parse
也稍微高效,因为它告诉框架使用哪种格式,而不是必须猜测。
答案 2 :(得分:1)
试试这个
Dim FormatString As String = ""
Dim SampleDate As DateTime
SampleDate = Now()
FormatString = Format(SampleDate,"dd-MM-yy")