1

私はこの行を機能させようとしています:

MyDateTime = DateTime.ParseExact("2/8/2013 11:59:00 AM", "yyyy-mm-dd hh:mm:ss", System.Globalization.DateTimeFormatInfo.InvariantInfo)

date/time上記の形式でスプレッドシートから文字列を取得していますが、それを制御できません。文字列を日付に変換する方法については、このサイトを含め、オンラインでたくさんのヘルプがあり、すべて試しましたが、このエラーが発生し続けます。

"System.FormatException: String was not recognized as a valid DateTime."

独自のカスタム パーサーを作成する準備が整いましたが、それはあまりエレガントではないようです。私のような文字列date/timeを必要な形式に変換する組み込みの方法はありますか?

助けてくれてありがとう。

4

2 に答える 2

1

フォーマット文字列が間違っています。形式で日付を入力していますが、d/M/yyyy hh:mm:ss tt形式で日付を期待するように指示していyyyy-mm-dd hh:mm:ssます。この 2 つは正確には一致しないため、DateTime.ParseExactは適切に例外をスローします。

試す:

MyDateTime = DateTime.ParseExact("2/8/2013 11:59:00 AM", "d/M/yyyy hh:mm:ss tt", System.Globalization.DateTimeFormatInfo.InvariantInfo)

これは、次の文字を期待するように指示します。

Integer from 1 through 31 (depending on the length of the month)
/ character
Integer from 1 through 12
/ character
4 digit year
Space
Integer from 1 through 12
: character
Integer from 00 through 59
: character
Integer from 00 through 59
Space
Two character meridian specifier ("AM" or "PM")

日時形式文字列の詳細については、この MSDN ページを確認してください。

于 2013-08-21T01:20:57.273 に答える
0

渡すものと一致するように文字列形式を変更する必要があると思います。次のようなものを渡しているようです:

"d/M/yyyy hh:mm:ss"

それを試してみて、それがどのように機能するかを見てください。月には使用する必要があることに注意してくださいMM。「mm」は分に使用されます。

于 2013-08-21T01:20:43.297 に答える