C# 如何解析";20161114T000000Z“;在sitecore中创建DateTime对象

C# 如何解析";20161114T000000Z“;在sitecore中创建DateTime对象,c#,sitecore,C#,Sitecore,通过查询检索到的sitecore字段中的datetime类型为“20161114T000000Z”字符串 问题: 什么是T和Z 应该如何将其解析为DateTime对象 我读了一些相关的问题,发现DateTime.TryParseExact()可以解决这个问题,但我仍然不知道t和Z是什么意思 请提供一些示例代码。T只是一个分隔符。Z告诉我们时间是UTC。我们现在看到的是 要解析此字符串,可以使用 using System.Globalization; var s = "20161114T0000

通过查询检索到的sitecore字段中的datetime类型为“20161114T000000Z”字符串

问题:

  • 什么是T和Z

  • 应该如何将其解析为DateTime对象

  • 我读了一些相关的问题,发现DateTime.TryParseExact()可以解决这个问题,但我仍然不知道t和Z是什么意思


    请提供一些示例代码。

    T只是一个分隔符。Z告诉我们时间是UTC。我们现在看到的是

    要解析此字符串,可以使用

    using System.Globalization;
    
    var s = "20161114T000000Z";
    var d = DateTime.ParseExact(s, "yyyyMMdd'T'HHmmss'Z'", CultureInfo.InvariantCulture);
    
    Microsoft的最新版本更倾向于明确存储时间点,因此您可能应该改用此版本:

    var s = "20161114T000000Z";
    var d = DateTimeOffset.ParseExact(s, "yyyyMMdd'T'HHmmss'Z'", CultureInfo.InvariantCulture);
    

    T是日期和时间之间的分隔符。Z代表祖鲁时间或UTC。“请提供一些示例代码”。我认为您可能对堆栈溢出的目的感到困惑。我们不是来为你写代码的。请阅读。对于T和Z,请阅读@JoshJ关于解析格式字符串的任何建议?e、 g.“yyyy-MM-dd HH:MM:ss,fff”没有殴打任何人。只是告诉你网站的规则。事实上,如果有人被冒犯了,应该是我,因为你似乎觉得你的时间比我的时间更有价值。回答如下:最佳实践实际上是使用内置的Sitecore方法,例如Sitecore.DateUtil.IsoDateToDateTime([CanBeNull]string isoDate,DateTime defaultValue,bool treatLegacyDatesAsUtc)@geedubb你对此有没有传单?我很好奇为什么它更好。它是否适用于OP的示例(不完全是标准的ISO日期/时间字符串)?var isoDate=“20161114T000000Z”;Write(Sitecore.DateUtil.IsoDateToDateTime(isoDate,DateTime.Now,true));->将于2016年11月14日00:00:00打印。