2012-02-25 7 views
0

ここに比較的新しいWindows Phone開発者がいます。基本的には、私は最終的に市場に出るために探しているアプリを使いこなしています。Windows用のC#で特定の日付形式を設定する電話

基本的には、特定の日付までカウントダウンしていますが、カウントダウンは問題なく動作していますが、私は英国の日付形式に問題があり、日付形式はDD/MM/yyyyですが、州はMM/dd/yyyyです。だから、アプリは米国の誰にとっても負の数値になる。基本的には、私のアプリの普遍的な日付形式を設定しているかどうかなど、いくつかの回避策の助けが必要です。ここではカウントダウンのためのコードは次のとおりです。

 DateTime startDate = DateTime.Now; 
     var launch = DateTime.Parse("01/08/2012 00:00:00 AM"); 
     TimeSpan t = launch - startDate; 

     Countdown.Text = string.Format("\r {0}\r Days \r {1}\r Hours \r {2}\r Minutes \r {3}\r Seconds", t.Days, t.Hours, t.Minutes, t.Seconds); 
+0

質問に関係のないノートでは、「00:00:00 AM」という表記はほとんどの時間慣習に反します。通常は「12:00:00 AM」(12時間制)または「00:00:00」(24時間制)と書いています。 – Douglas

答えて

2

日付をハードコーディングしている場合は、むしろ文字列から、それを解析するよりも、DateTime(int,int,int)コンストラクタを使用する必要があります。 3つのパラメータは、常に年、月、日(この順)と解釈されます。

var launch = new DateTime(2012, 08, 11); 
+0

これはまさに私が必要としていたものです。私はかなり新しくC#だから、助けてくれてありがとう! – BB1873

0

DateTimeのToString()メソッドには、カスタム書式文字列を使用するオーバーロードがあります。

http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx

それを求める、またはユーザーの地域を確立し、正しい形式で彼に日付を送信するためにかなり簡単になります。

これ以外にも、System.Globalization.CultureInfoオブジェクトを使用するToStringのオーバーロードがあります。

myDateTime.ToString(new System.Globalization.CultureInfo(Thread.CurrentThread.CurrentCulture.Name)); 

これは、OSの設定に基づいてユーザー領域に対して正しくフォーマットされたdatetimeを与えるはずです。

関連する問題