3

このアプリケーションでは、プログラムで決定された月末の日付に基づいて日付選択メニューを作成します。米国では、日付は 2012 年 12 月 31 日になる場合があります。フランスでは、2012 年 12 月 31 日かもしれませんし、CultureInfo から得たわずかに異なる形式かもしれません。

私の質問は次のとおりです。アプリケーションによって生成された 12/31/2012 などの文字列の日付がある場合、アプリケーションが実行されているカルチャに合わせて適切にフォーマットするにはどうすればよいですか? アプリケーションが実行されているカルチャと有効な日付を構成するものが事前にわからないため、文字列を日付に変換してからフォーマットすることはできません。日付を正しく表示するには、短い日付形式を解析する必要がありますか?

4

2 に答える 2

5

アプリケーションが実行されているカルチャが事前にわからないため、文字列を日付に変換してからフォーマットすることはできません

はい、できます。に解析DateTimeし、現在のカルチャを使用してフォーマットすることができます。

VB.NET:

Dim myDate As DateTime 
             = DateTime.Parse("12/31/2012", CultureInfo.InvariantCulture)
Dim cultureAwareShortDate As String =
             = myDate.ToString("d", Thread.CurrentThread.CurrentUICulture)

C#:

var myDate = DateTime.Parse("12/31/2012", CultureInfo.InvariantCulture);
var cultureAwareShortDate
             = myDate.ToString("d", Thread.CurrentThread.CurrentUICulture);
于 2012-12-14T19:30:45.037 に答える
0

理想的には、アプリケーションは文字列ではなく DateTime として日付を生成します。次に、最初のステップとして Oded が示す変換を使用する必要はありません。

于 2012-12-14T21:19:44.817 に答える