获取TIME而不将其转换为本地时区

时间:2016-06-23 22:39:34

标签: c# datetime

代理代码从XML读取DATETIME(“2016-05-08T12:33:11.991-05:00”),然后创建DateTime对象。然后我的代码读取DateTime。我想在XML文件中获得TIME,但没有TZ(“2016-05-08 12:33:11.991000”)。我怎么做到的?

(请注意,我无法访问用于从XML文件创建DateTime对象的代码.DateTime.Kind说LOCAL。)

psuedocode

Input-XML  "2016-05-08T12:33:11.991-05:00". //Creates DateTime object called DtXML.
.....
I do not have access to this code.
.....

DtXML.ToString("yyyy-MM-dd HH:mm:ss.ffffff"); //This gives 2016-05-08   10:33:11.991000
DtXML.Kind;// This is LOCAL.

I want to get "2016-05-08 12:33:11.991000".
Is this possible?

2 个答案:

答案 0 :(得分:1)

您可以使用DateTimeOffset并执行此操作。

string s = "2016-05-08T12:33:11.991-05:00";
var dtOffset =DateTimeOffset.Parse(s, null);

DateTime dt = dtOffset.DateTime; // 08.05.2016 12:33:11
Console.WriteLine(dtOffset.DateTime.ToString("yyyy-MM-dd HH:mm:ss.ffffff")); // prints - 2016-05-08 12:33:11.991000

选中此code

答案 1 :(得分:0)

你试过这个吗?

var expectedDT = DateTime.SpecifyKind(DtXML.ToUniversalTime(), DateTimeKind.Local);