1

「08-06-2008」という値を持つ文字列があります。結果を「08-06-08」のようにしたい。これを行う方法はありますか?CDate を試しましたが、2008 年 8 月 6 日しか表示されず、問題は解決しません。

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/ParseExactおよびで使用されToStringます。

参照:カスタムの日付と時刻のフォーマット文字列

于 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を使用した理由Parseです。ParseExactまた、フレームワークが推測するのではなく、使用する形式をフレームワークに伝えるため、わずかに効率的です。

于 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 に答える