C# 获得';DateTime.ToString()和#x27;输出与';日期时间';
是否有一种标准的C# 获得';DateTime.ToString()和#x27;输出与';日期时间';,c#,.net,datetime,formatting,C#,.net,Datetime,Formatting,是否有一种标准的DateTime格式可用于C#,该格式可与ToString方法一起使用,该方法将生成与将DateTime序列化为XML时生成的格式相同的格式 例如:2013-03-20T13:32:45.5316112Z看这里: 您需要的格式是: myDate.ToString("u"); 例如: DateTime date1 = new DateTime(2008, 4, 10, 6, 30, 0); Console.WriteLine(date1.ToUniversalTime().To
DateTime
格式可用于C#,该格式可与ToString
方法一起使用,该方法将生成与将DateTime
序列化为XML时生成的格式相同的格式
例如:2013-03-20T13:32:45.5316112Z
看这里:
您需要的格式是:
myDate.ToString("u");
例如:
DateTime date1 = new DateTime(2008, 4, 10, 6, 30, 0);
Console.WriteLine(date1.ToUniversalTime().ToString("u"));
// Displays 2008-04-10 13:30:00Z
但是,这并不完全是您想要的(尽管可能仍然有效),因此您可能必须使用自定义格式:
DateTime date1 = new DateTime(2008, 4, 10, 6, 30, 0);
Console.WriteLine(date1.ToUniversalTime().ToString("yyyy-MM-dd'T'HH:mm:ss.fffffffZ"));
// Displays 2008-04-10T13:30:00.000000Z
我认为你必须明确:
dateTime.ToString(“yyyy-MM-ddTHH:mm:ss.fffffffZ”);
你必须小心使用正确的时区 .ToString(“o”)似乎起到了作用它很接近,但它使用了一个空格来分隔时间和日期,而不是
T
。编辑后也会显示T,请记住-您需要先将日期转换为UTC!不过,我认为,在最后会缺少“z”,因为.z在那里使用了该参数。这很有趣-没有。@MatthewWatson在您提供的链接上,现在解析为.NET Framework 4.6和4.5,UTCDateTime
格式示例现在在输出中包含了z
:2009-06-15T13:45:30
(DateTimeKind.Utc
)-->2009-06-15T13:45:30.0000000 z
。不太清楚:DateTime t1=DateTime.Parse(“2016-08-02T12:35:04.140625”);XMLSerialization使2016-08-02T12:35:04.140625脱离它,而t1.ToString(“o”)导致“2016-08-02T12:35:04.1406250”。这只是一个小差异,但我目前正在寻找结果的字符串相等性,所以我只想提出这个小差异。请参阅我对@user1450877答案的评论。这里也是如此。似乎序列化的工作原理略有不同。