2016-05-11 6 views
-3

次のコードでは、文字列値 "item.Date"を "Date"文字列に渡します。 ddd MM/dd/yyyy HH:mm:ssdddをMM/dd/yyyyに変換する時刻を変換するHH:mm:ss

文字列に変換すると、上記の形式もうまくいきませんでした。

私が使用してみました:

DateTime dateformatted = DateTime.ParseExact(item.Date, "ddd dd MMM yyyy h:mm tt", null); 

それがエラーを示しました。誰もがMSDNに

foreach (var item in data) 
{ 
    model.Add(new MailDetailDTO 
    { 
     Attributes = item.Attribute1, 
     Date = item.Date, 
     From = item.SentFrom, 
     FromOrg = item.OrganizationName, 
     IsConfidential = item.IsConfidential, 
     MailID = item.MailHeaderID, 
    } 
} 
+0

どのようなエラーがありましたか?あなたの日付書式文字列に誤字がないのは確かですか?それは私には見えません。 – user1666620

+2

'item.Date'の値は何ですか?あなたは何を得ているのですか? – Habib

+0

あなたの書式と 'ParseExact'呼び出しが一致しません。 –

答えて

0

これは何をParseExactのAPI documentationあるのを助けることができると言うことがあります。

を文字列表現のフォーマットが正確に指定 形式と一致する必要があります。

これはitem.Date文字列プロパティとあなたがParseExact APIの引数として渡しているカスタムの日付時刻形式ddd dd MMM yyyy h:mm ttで、日付時刻値を格納している形式で、特定の不一致があることを意味します。項目の変数に存在

private static void DateTimeForatError() 
    { 
     var item = "Sun 22-May-2016 3:52 AM"; 
     DateTime dateformatted = DateTime.ParseExact(item, "ddd dd MMM yyyy h:mm tt", null); //results in exception 
    } 

日付時刻文字列値が解析可能に見えますが、String was not recognized as a valid DateTime.エラーの次の行の結果:

は、以下のコードを見てください。これは、私が-のハイフンを日、月、年の区切り文字として使用しているのに対し、カスタムフォーマット文字列dd MMM yyyyはスペースを使用しているからです。限り、私はカスタム形式の文字列ddd dd MMM yyyy h:mm ttに準拠していない項目変数に日付の文字列の値を格納している方法でも単一の違いがある限り、バーストされます。アイテムの値をSun 22 May 2016 3:52 AMにする瞬間、それは成功します。 MailDetailDTOオブジェクトのitem.Dateの値を変更して、カスタム日付時刻文字列形式と一致させて、エラーを取り除くか、またはPraseExact APIに渡すカスタム日付時刻書式文字列を変更します。バックエンドデータからitem.Dateに入ってくる日付時刻値の形式と一致させます。

関連する問題