2016-07-15 3 views
0

で動作すること、私は形式の文字列としてテキストファイルから戻ってくる日時を持っている:DateTime.ParseExactそして、それはカスタム形式

土曜日15-07-2016午後12時55分54秒

":mm:ssのDDDD DD-MM-YYYYのHH"

のように

私はDateTime.ParseExactを使用してDateTime書式に変換しようとしています210、私のコードは次のとおりです。私は取得

CultureInfo provider = CultureInfo.InvariantCulture; 
string lastLine = File.ReadLines("logon.txt").Last(); //the date string is in the logon.txt 
DateTime dt = DateTime.ParseExact(lastLine, "dddd dd-MM-yyyy HH:mm:ss",provider); 
return dt; 

例外はにSystem.FormatExceptionです:{ "文字列が有効な日時として認識されませんでした。 TXTをログオンする「}

リンク:https://drive.google.com/file/d/0B1oTQq97VF44Z21pT2FzM01XbU0/view?usp=sharing

任意のアイデア?

+0

あなたが全体を渡している。ここ

は私のために動作するコードですライン・ツー・デイト・パース法。ファイルに日付値のみが含まれていますか? – Rahul

+0

はい。私はlogon.txtを追加します。 – Daniel

+0

デバッガを使って、 'lastLine'に含まれていると思われるものが含まれていることを確認しましたか? – itsme86

答えて

1

問題は、表示されている日付が金曜日ですが、文字列は土曜日であると言います。ファイルの内容を「土曜日」の代わりに「金曜日」と変更してください。そうすればうまくいくはずです。とにかくそれは私のためにあります。

また、日付部分を「16-07-2016」に変更し、曜日を「土曜日」のままにすることもできます。いずれにしてもうまくいくはずです。

CultureInfo provider = CultureInfo.InvariantCulture; 
string lastLine = "Friday 15-07-2016 00:55:54"; 
DateTime dt = DateTime.ParseExact(lastLine, "dddd dd-MM-yyyy HH:mm:ss", provider); 
Console.WriteLine(dt); 

それが出て出力します:

2016年7月15日午前12時55分54秒AM

+0

あなたは正しいです。金曜日に変更しようとしました(logon.txt OCで保存しました)。それと同じ例外です。 – Daniel

+0

ファイルの内容を文字列で置き換えてください。どこかで何かが間違っているのは、それが私にとって完璧に機能するからです。たぶんあなたは、ファイルや何かの中に先導的なスペースを持っています。 – itsme86

+0

私はそれを手動で変更しているかもしれないからでしょうか?私が意味することは、テストして、ddddとddを金曜日と15日のように昨日に変更することです。 – Daniel

関連する問題