2016-10-14 15 views
0
string createddate = "10/14/2016 11:46 AM"; 
DateTime date = Convert.ToDateTime(createddate); 

文字列をdatetime形式として変換しようとしていますが、これは一部のデバイスで動作しています。うわー?この問題を解決するために私を助けてください。文字列が有効なDateTimeとして認識されないxamarin

+1

ほとんどの場合、各デバイスの文化がそれに影響を及ぼしています。 –

答えて

2

問題は、各デバイスに潜在的に異なるcultureがある可能性があるということです。あなたは文化を無視して、あなたの文字列内の特定の日付の形式を認識し、それを強制することができます

DateTime date = DateTime.ParseExact(
    createddate , "MM/dd/yy HH:mm tt", CultureInfo.InvariantCulture); 

standard date string formatscustom date string formatsについては、MSDNを参照してください。

+0

うまく動作していますが、AM/PMが表示されていません –

+0

「AM/PMを表示していません」とはどういう意味ですか? *何がそれを示していないのですか?結果の日付?日付は日付です。それらがどのように表示されるかは、それらを表示しているデバイスまたはアプリケーションの関数です。たとえば、Visual Studioで時計について話している場合、24時間形式を表示する何らかの理由でコンピュータがセットアップされている可能性があります。これは、午後12時以降に試してみるとより明白になります。 1:00 PMは13:00になります。 –

0

はこれを試してみてください:

string createddate = "10/14/2016 11:46 AM"; 
    DateTime dateTime; 
    DateTime.TryParse(createddate, out dateTime); 
0

あなたはDateTime値にstringを変換する際に、日付と時刻の形式を定義する必要があります。 推測デフォルトの形式、つまりになるようにすると、さまざまな種類のバグが発生します。それはが開発者のマシンで再現できないバグの最も一般的な原因の1つですそれは右行うに

例:

var date = DateTime.ParseExact("10/14/2016 11:46 AM", 
           "MM/dd/yyyy HH:mm tt", 
           CultureInfo.InvariantCulture); 
関連する問題