2013-01-22 6 views
5

24/01/2013 22:00DateTime.ParseExact - 私は、次の英国形式<code>DateTime</code>文字列解析しようとしている英国の日付と時刻

はしかし、私はこのエラーを取得しておいてください。

String was not recognized as a valid DateTime.

CultureInfo.CurrentCultureリターンを "en-GB" とここで

正しいのは、私のコードです

[TestMethod] 
    public void TestDateTimeParse() 
    { 
     DateTime tester = DateTime.ParseExact("24/01/2013 22:00", "d/M/yyyy hh:mm", CultureInfo.CurrentCulture); 

     int hours = tester.Hour; 
     int minutes = tester.Minute; 

     Assert.IsTrue(true); 
    } 
+0

'ParseExact'を使っているときに文化が大きく変わるとは思えません。 –

答えて

15

hhは12時間時計のためです。代わりにHHを使用する必要があります。

DateTime.ParseExact("24/01/2013 22:00", 
        "d/M/yyyy HH:mm", // <-- here 
        CultureInfo.CurrentCulture) 
1

あなたのフォーマットが間違っている、これを試してみてください。

DateTime tester = DateTime.ParseExact("24/01/2013 22:00", "dd/MM/yyyy HH:mm", CultureInfo.CurrentCulture); 
2

"hh"時間、12

"HH"に01から12時間クロックを使用して00〜23

から24時間クロックを使用して、 時間です

このようにしてみてください。

public static void Main(string[] args) 
{ 
    DateTime tester = DateTime.ParseExact("24/01/2013 22:00", "dd/MM/yyyy HH:mm", CultureInfo.InvariantCulture); 
} 

ここにはDEMOがあります。

また、MSDNからCustom Date and Time Format Stringsをチェックアウトすることもできます。

+1

これは間違いありませんが、理由を説明することが良いでしょう。 (btw - 'dd'と' MM'は厳密には必要ではありません)。 – Oded

+0

@Odedあなたは正しいですが、あなたはすでに_why_の理由を説明しました。もし私もそれを書いたら、それはコピーされているようですか? (ええ 'dd'と' MM'は必要ではないが、これは 'd'と' M'よりも読みやすいと思う) –

+0

私はコピーについて知らないが、すべての答えを可能な限り最良のものにしようとすると、悪い目標は持っていますか? – Oded

関連する問題