2016-11-22 6 views
-2

私はdatetime:17/10/2016 6:52:13をテキストとして解析して、DateTimeに出力しますが、常に出力として01/01/0001を取得します。"17/10/2016 6:52:13"をDateTimeに解析するには

私のコードは次のとおりです。

DateTime.TryParseExact(dateTime, "dd/MM/yyyy" + " " + "hh:mm:ss", 
         CultureInfo.InvariantCulture, DateTimeStyles.None, out timeStamp); 

任意の手掛かり?

+1

だった、あなたは、単にそれを無視します。 –

+0

@dave必要がない限り、タイトルにタグを追加しないでください。 – slugster

+0

@slugsterの確かなこと(私の守備ではすでにタイトルに入っていましたが) – dave

答えて

3

入力には1桁の数字しかありませんが、フォーマット文字列には2文字しか使用されません。また、AM/PM指定子がないので、おそらく大文字のHを必要とする24時間の時間を使用するつもりです。

代わりに"dd/MM/yyyy H:mm:ss"を試してください。

詳細はthis documentを参照してください。

+0

もちろん、これは2桁の時間で入力に壊れます。 –

+1

@ChrisShain:いいえ、それはできません。 11または12はこのフォーマットで正常に動作します。 01、02など – StriplingWarrior

+0

彼は16時間35分29秒のような24時間形式を使用していない場合は動作します。 – Kinetic

0

このようなことができます。

string givenDate = "17/10/2016 06:52:13"; 
DateTime myDate = DateTime.ParseExact(givenDate, "dd/MM/yyyy hh:mm:ss", System.Globalization.CultureInfo.InvariantCulture); 

か、単に使用することができ、あなたの与えられた時間を考慮して「H:mmのssは、」構文解析のboolean型の結果を返しますTryParseExact` `6時52分13秒

関連する問題