2017-07-16 8 views
0

データベースからDateTimeまでの既存のタイムスタンプを解析しようとしていますが、うまくいかないです。私が知る限り、以下は有効なタイムスタンプです。C#で既存のタイムスタンプを解析していますか?

2017-03-27 02:23:37 

私は何を試しましたか?

Convert.ToDateTime(row["last_used"]) 

そしてこの

DateTime.Parse(Convert.ToString(row["last_used"])) 

どちらも、それが有効なDateTimeのないことに関するエラーを投げますか?私は彼らを救う方法

DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") 
+0

次のステートメントは正常に機能するため、DateTime.Parse(DateTime.Now.ToString( "yyyy-MM-dd HH:mm:ss"));私は問題がデータベースから来る価値に関係していると思う。行["last_used"]がnullを返すことはできませんか? – Artem

+1

なぜ日付を文字列として保存しますか? – CodeCaster

+1

日付をデータベースに文字列として保存していますか? – Natiq

答えて

0

あなたが保存するための日時をフォーマットするカスタムパターンを使用する場合は、あなたが戻って文字列からDateTimeのためにそれを解析するために同じパターンを使用することがあります。

var date = DateTime.ParseExact("row["last_used"]", "yyyy-MM-dd HH:mm:ss", CultureInfo.CurrentCulture); 

私はISO標準フォーマットdate.ToString("o")を使用して2009-06-15T13:45:30.0000000Zのような文字列を生成することをお勧めします。DateTime.Parse(dateStr)

+1

.Parseが機能せず、.ParseExactに3つのパラメータが必要です。 IFormatProviderパラメータ。 –

+0

'CurrentCulture.InvariantCulture'を' IFormatProvider'として試してみてください – opewix

+0

私は今、「Stringが有効なDateTimeとして認識されていません」となっていますが、働いていただきありがとうございます。 –

関連する問題