12

DateTime.Parseはで失敗します

 15/08/2000 16:58

何かご意見は?

日付を解析して、国際的なものを取得する必要があります。

DD / MM/YYYYは24時間制にフロップしません

MM / DD/YYYYは24時間制を受け入れます

15/08/20004:58PMは解析します

Kibbeeの回答から、他の文化を使用することを検討しました。正規表現を使用して、それがdd / MMであるかどうかを判断し、そうである場合は、カルチャfr-FRを使用します。

4

2 に答える 2

36

試してみてくださいDateTime.ParseExact()

var result = DateTime.ParseExact(dateString,
                                 "dd/MM/yyyy HH:mm",
                                 new CultureInfo("en-US"));
于 2012-04-26T00:51:47.860 に答える
13

日付が予想される正確な形式がわかっている場合は、おそらくDateTime.ParseExactを使用して日付を解析する必要があります。目的に応じて、次のように機能する可能性があります。

string dateString, format;  
DateTime result;
CultureInfo provider = CultureInfo.InvariantCulture;

dateString = "15/08/2000 16:58"
format = "dd/MM/yyyy HH:mm"
result = DateTime.ParseExact(dateString, format, provider);

上記に変更します。HHは24時間制を意味するため、hhをHHに変更しました。先行ゼロを使用しない場合は、単にHを使用します。フォーマット文字列の作成の詳細については、この記事を参照してください

また、リンクされたMSDNの記事から、「g」の形式が機能するように見えます。

dateString = "15/06/2008 08:30";
format = "g";
CultureInfo provider = new CultureInfo("fr-FR");
DateTime result = DateTime.ParseExact(dateString, format, provider);
于 2012-04-26T00:49:08.680 に答える