如何将字符串转换为DateTime作为UTC就像那样简单

use*_*852 11 c# datetime datetimeoffset

假设我有这个字符串:我怎样才能将它转换为具有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} ,好像它会理解我想要日期就这么简单(BTW - 我的机器在时区+02:00)

Kna*_*ģis 50

使用DateTimeOffset.Parse(string).UtcDateTime.


Sny*_*mpi 9

接受的答案对我不起作用。使用DateTimeOffset.Parse(string)DateTimeOffset.ParseExact(string).UtcDateTime转换器正确地将时间类型更改DateTime为 UTC,而且还转换了时间。

要获取DateTime与原始字符串时间相同但采用 UTC 时间的时间,请使用以下命令:

DateTime dt = DateTime.ParseExact(string, "yyyy-MM-ddTHH:mm:ss.fffffff",
    CultureInfo.InvariantCulture);
dt = DateTime.SpecifyKind(dt, DateTimeKind.Utc);
Run Code Online (Sandbox Code Playgroud)