3

これは文字列です:2007-08-31T06:59:40+02:00
どうすれば変換できDateTimeますか?

4

5 に答える 5

9

DateTimeOffsetは、タイムゾーンオフセットも処理します。

DateTimeOffset.Parse("2007-08-31T06:59:40+02:00")

また

DateTimeOffset.ParseExact("2007-08-31T06:59:40+02:00", "yyyy-MM-ddTHH:mm:sszzzz"
                          ,System.Globalization.CultureInfo.InvariantCulture));
于 2012-11-07T13:11:14.537 に答える
6

使用する必要がありますDateTimeOffset.ParseExact-期待している正確な形式を知っています。これはおそらくユーザー入力ではなく別のコンピューターからのものであるため、失敗した場合は間違いなくエラーになります。同様に、不変のカルチャを指定して、これが実行中のスレッドの「現在のカルチャ」に依存しないことを示す必要があります。

var value = DateTimeOffset.ParseExact(text,
                                      "yyyy'-'MM'-'dd'T'HH':'mm':'sszzz",
                                      CultureInfo.InvariantCulture);

DateTimeOffset情報を正確に表すタイプです-その情報の一部を失う必要がありDateTimeます

于 2012-11-07T13:14:17.027 に答える
5

使用DateTime.Parse()

DateTime dt = DateTime.Parse ("2007-08-31T06:59:40+02:00")
于 2012-11-07T13:09:08.957 に答える
2

DateTimeOffset.TryParseメソッドを使用できます。

http://msdn.microsoft.com/en-us/library/bb397029.aspx

于 2012-11-07T13:11:57.573 に答える
1

を使用しDateTimeOffset.Parse()ます。

次に、DateTimeプロパティまたはDateTimeUtcプロパティのいずれかを使用してDateTimeを取得します(ただし、DateTimeOffsetを引き続き使用できるかどうかを調査する必要があります。

于 2012-11-07T13:12:41.553 に答える