3
var str = "00:00:00 02/01/1990";
var dt = DateTime.ParseExact(str, "hh:mm:ss dd/MM/yyyy", null);

上記のコードは、「文字列は有効な DateTime として認識されませんでした」という例外をスローしています。

ParseExact を使用して正確な形式を指定すると、これで問題ないと思いました。上記の何が問題になっていますか?

編集:

インバリアント カルチャを使用して解決しました。コメントありがとうございます。

var dt = DateTime.ParseExact(str, "HH:mm:ss dd/MM/yyyy", CultureInfo.InvariantCulture);
4

2 に答える 2

1

はい、通常はの前に最初に来るDateTime形式です。これを試してください:DateTime

var str = "02/01/1990 00:00:00";
var dt = DateTime.ParseExact(str, "hh:mm:ss dd/MM/yyyy", null);

編集済み: OKなので、それを成し遂げるために1つのトリックを行います:

var str = "00:00:00 02/01/1990";
var split = str.Split(new char[] { ' ' });
if (split.Length == 2)
    str = String.Format("{0} {1}", split[1], split[0]);
var dt = DateTime.ParseExact(str, "hh:mm:ss dd/MM/yyyy", null);
于 2012-10-27T07:48:29.037 に答える
1

"hh" 形式指定子は、"00" をサポートしていない 12 時間制の AM/PM 時間用です。24 時間制で定義してみてください。HH:mm:ss dd/MM/yyyy

于 2012-10-27T07:51:28.253 に答える