2016-08-16 4 views
0

この特定のコードでは、AM PMは表示されません。私はスタックオーバーフローを検索しようとしましたが、この特定の形式に関する何も見つかりませんでした。 ttが表示されないようなコードに何か問題がありますか?C#でDateTimeをフォーマットするときにttが表示されない

DateTime.Now.ToString("dddd d MMMM yyyy hh:mm tt", new System.Globalization.CultureInfo(SessionIsFrench.Value ? "fr-CA" : "en-US")); 

SessionIsFrenchは、コードと間違って真

+0

これはどの言語に依存するのでしょうか? –

+0

C#と私は絶対にこの形式が必要なのでフォーマットが正しくない場合は回避することは気にしません –

+0

なぜ私は本当に多くの検索をしたように-1なぜ理解していません –

答えて

1

AM/PMの部分が本当に必要な場合は、日付と時刻の部分を別々に書式設定し、常に「en-US」を使用してください。

var now = DateTime.Now; 
var date = now.ToString("dddd d MMMM", new System.Globalization.CultureInfo(SessionIsFrench.Value ? "fr-CA" : "en-US")); 
var time = now.ToString("hh:mm tt", new System.Globalization.CultureInfo("en-US")); 
var dateTime = string.Format("{0} {1}", date, time); 
+0

.NET 4.5の場合でもAM/PMはフランス文化のために定義されていません。 –

1

何もありません、それはAMとPMは、FR-CA用に定義されていないだけということです。

var c = new System.Globalization.CultureInfo("fr-CA"); 
Console.WriteLine(c.DateTimeFormat.AMDesignator); // "" 
Console.WriteLine(c.DateTimeFormat.PMDesignator); // "" 
+0

あなたは正しいです。それはその文化のために定義されていないようです。 –

関連する問題