コードを使用せずに日付をフォーマットする方法-Format String Question
-
03-07-2019 - |
質問
フォーマット文字列を使用して次のことを実現するにはどうすればよいですか?Do 01.01.2009? すべての言語で動作する必要があります(例はドイツ用です)。したがって、短い平日と短い日付のみが必要です。
「ddd d」(「なし」)を試しました。ただし、これは「Do 01」につながります。 「d」の前に置くことができ、それ自体でトレッドになるような文字がありますか?
解決
DateTime.Now.ToString("ddd dd/MM/yyyy")
他のヒント
さまざまな音声言語の視聴者をターゲットにしている場合は、 ISO 8601 標準を使用する必要があります。 。
DateTime.Now.ToString("ddd yyyy-MM-dd");
別の方法として、短い日付で現在の文化をターゲットにすることができます:
DateTime.Now.ToString("d", Thread.CurrentThread.CurrentCulture);
または長い日付:
DateTime.Now.ToString("D", Thread.CurrentThread.CurrentCulture);
ロケール固有の短い日付とロケールの曜日名を取得するには、2つの呼び出しを使用する必要があります。
myDate.ToString("ddd ") + myDate.ToString("d");
代わりに長い日付形式を使用することを検討しましたか?
ローカライズする場合(「すべての言語」と言ったのでそう思います)、CultureInfoを使用して、表示するさまざまなカルチャを設定できます。 MSDNライブラリには、標準の日付と時刻の形式文字列および< a href = "http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.aspx" rel = "nofollow noreferrer"> CultureInfoクラス。
MSDNが提供する例:
// Display using pt-BR culture's short date format
DateTime thisDate = new DateTime(2008, 3, 15);
CultureInfo culture = new CultureInfo("pt-BR");
Console.WriteLine(thisDate.ToString("d", culture)); // Displays 15/3/2008
参考までに、Javaでは次のようになります。
DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
Date date = new Date();
String formattedDate = dateFormat.format(date);
同じ文字を区切り文字として使用する場合は、バックスラッシュを使用して文字をエスケープする必要があります。そうしないと、デフォルトのロケールになります。指定した形式が必要な場合は、この文字列を使用することをお勧めしますあなたの質問で
DateTime.Now.ToString("ddd dd.MM.yyyy");
代わりにスラッシュを使用するには、常にスラッシュとして出力されるようにエスケープする必要があります。
DateTime.Now.ToString("ddd dd\\/MM\\/yyyy");