2016-11-09 39 views
-1

ここでLogInTimeとLogOutTimeはdatetimeデータ型です。どのようにC#でDatetimeに関連して文字列形式のコードを変換する?エラー - 'System.DateTime'から変換できません。 to 'string' C#

LogOutTimeとLogInTimeはどちらもdatetimeデータ型です。

new 
{    
    AccessDate = (DateTime.TryParse(x.LogOutTime, out parsed)) ? parsed.ToShortDateString() : "Unknown", 
    AccessTimeFrame = (DateTime.TryParse(x.LogOutTime, out parsed)) ? parsed.ToShortTimeString() : "Unknown" 
} 

これでエラーが発生しました。 "は 'System.DateTime'から変換できません。 「文字列」へ

+1

あなたは少なくとも「AccessDate」と「AccessTimeFrame」のタイプを言っておかなければなりません – Pikoh

+0

@Pikoh彼らは '' Unknown ''をそれらに割り当てることができるので' 'string''だと思います。 – meJustAndrew

+1

@meJustAndrew彼が含むエラーメッセージから判断すると、DateTime変数です。 –

答えて

0

DateTime.TryParse最初の引数は文字列型でなければなりません、あなたはDateTimeオブジェクトのみを渡しています。 x.LogOutTimeを文字列に変換します。このリンクを介して

ゴー、MSDN

DateTime parsedDateTimeObj; 
AccessDate = (DateTime.TryParse(x.LogOutTime.ToString(), out parsedDateTimeObj)) ? parsedDateTimeObj.ToShortDateString() : "Unknown"; 

は私に従って正しいです。

+0

エラーCS0103が発生しました:名前 '解析済み'は現在のコンテキスト(CS0103)に存在しません –

+0

**解析済み**は単純に変数です** DateTime **の@lashjaによって宣言されていますが、とにかく心配してくれてありがとう、私の答えが更新されます。 –

4

'Unknown'からDateTime.MinValueに変更してください。 datetime変数の値を文字列に設定しようとしているため、問題が発生していると思われます。

+0

エラーが発生するのは** "System.DateTimeから変換できません" to 'string' "**などをアップアップする前に、質問と回答をここに投稿してください。 –

+2

上記のソリューションは、 'string'と 'System.DateTime'の間に暗黙の変換がないため、条件式の型を判別できないという新しいエラーを生成します**間違った案内をしないでください –

3

.Valueを最初に使用する必要があります(nullableなので)。この方法に

new 
{    
    AccessDate = (DateTime.TryParse(x.LogOutTime, out parsed)) ? parsed.Value.ToShortDateString() : "Unknown", 
    AccessTimeFrame = (DateTime.TryParse(x.LogOutTime, out parsed)) ? parsed.Value.ToShortTimeString() : "Unknown" 
} 
+1

このエラーは、 、** 'DateTime'に 'Value'の定義が含まれておらず、拡張メソッドがありません 'DateTime'タイプの最初の引数を受け入れる 'Value'が見つかりました(usingディレクティブまたはアセンブリ参照がありませんか?)** –

+0

私は 'parsed'型はエラーに応じてnullableです( 'System.DateTime?'to' string ') – Eldeniz

+0

どこから解析されたのですか? C#、.NET Core 2.0、Visual Studio 2017 –

関連する問題