あなたが持っているDateTime
文字列は解析されず、デフォルト値を取得しています。理由の1つは、日付文字列のa.mです。現在のthread Cultureの設定にも依存します。 TryParseExactを使用して、DateTime文字列の形式にCulureInfoも指定できます。
DateTime.TryParseExact(dateTime, "yyyy-MM-dd hh:mm:ss 'a.m'", CultureInfo.InvariantCulture,DateTimeStyles.None, out value);
は、あなたの代わりに私が上記の例で「A.M」で行ったようにエスケープする必要があります午前のA.Mています。
p.mとそれ以上の効果があります。ドットを空の文字列に置き換えて、a.m
をam
に、p.m
をpm
に、Custom Date and Time Format Stringstt
をam/pmに使用することができます。 am
またはpm
の間に1つのドットしかないと仮定します。
string dateTime = "2017-04-05 05:00:00 a.m";
dateTime = dateTime.Replace(".", "");
DateTime value = DateTime.MinValue;
DateTime.TryParseExact(dateTime, "yyyy-MM-dd hh:mm:ss tt", CultureInfo.InvariantCulture,DateTimeStyles.None, out value);
、その関連オブジェクトと一緒に、このプロパティによって返されるThread.CurrentCulture
CultureInfoオブジェクト、 の影響についての詳細を読む日付、 回、数字、通貨値のデフォルトフォーマットを決定、テキストのソート順、ケーシング の規則、および文字列の比較。 cultureの名前と識別子、 不変、中立、および特定の文化の違い、文化 の情報がスレッドとアプリケーションドメインに影響を与える方法についてCultureInfoクラスを に参照してください。スレッドのデフォルトの カルチャがどのように決定され、どのようにユーザが コンピュータのカルチャ情報を設定するかについては、 CultureInfo.CurrentCultureプロパティを参照してください。
がTryParseからの戻り値をチェックし、それを伝えることができそれは失敗しました。 – BugFinder
いいえ、何も返されていません、それは1/1/0001 12:00:00 AMこの値 – Meena
あなたは 'TryParseExact'を使用しようとしました。 –