20

私はこの文字列を持っていると仮定します: UTC 時間を持つ DateTimeOffset オブジェクトに変換するにはどうすればよいですか - タイムゾーンとして -00:00 を意味します - 特定のタイムゾーンのマシンで実行したとしても?

文字列を想定: "2012-10-08T04:50:12.0000000"

Convert.ToDateTime("2012-10-08T04:50:12.0000000" + "Z");

--> DateTime d = {10/8/2012 6:50:12 AM} そして、それを DateTime d = {10/8/2012 4:50:12 AM} にしたい 日付が欲しいそれが来るのと同じくらい簡単です(ところで-私のマシンはタイムゾーン+02:00です)

4

4 に答える 4

69

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

于 2012-11-06T15:32:07.987 に答える
3

受け入れられた答えは私にはうまくいきませんでした。DateTimeOffset.Parse(string)またはコンバーターを使用するDateTimeOffset.ParseExact(string)と、.UtcDateTimeの種類が UTC に正しく変更されましたDateTimeが、時刻も変換されました。

DateTime元の文字列時間と同じ時間を UTC で取得するには、次を使用します。

DateTime dt = DateTime.ParseExact(string, "yyyy-MM-ddTHH:mm:ss.fffffff",
    CultureInfo.InvariantCulture);
dt = DateTime.SpecifyKind(dt, DateTimeKind.Utc);
于 2020-11-29T05:37:04.100 に答える