- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在阅读这个答案 here我在哪里遇到这个枚举值 DateTimeStyles.RoundtripKind
。我现在正在努力理解它。我查看了 MSDN 文档 here其中说:
The DateTimeKind field of a date is preserved when a DateTime objectis converted to a string using the "o" or "r" standard formatspecifier, and the string is then converted back to a DateTime object.
我在上一段中提到的帖子中 input
变量指向的时间戳如下:
<timestamp time='2016-09-16T13:45:30'>
我运行了她的代码,它成功了。现在关联我拥有的所有信息变得有点困惑:
上面的时间戳包含一些标识符T
MSDN 文档讨论了 o
和 r
格式说明符,但没有说明它是什么?
如果您在上面引用的 MSDN 链接上深入了解有关 DateTimeKind
枚举的更多详细信息,它不会提及 o
和 r
格式说明符。 Here是链接,上面写着:
Member Name | Description
--------------------------------------------------------------------------------
Local | The time represented is local time.
Unspecified | The time represented is not specified as either local time or Coordinated Universal Time (UTC).
Utc | The time represented is UTC.
那么有人可以帮助我理解 DateTimeStyles.RoundtripKind
枚举及其工作原理吗?
最佳答案
所以我终于能够理解这一点并在这里分享相同的信息,如果它对其他人也有帮助的话:
第一部分是将 C# DateTime 对象转换为字符串。有许多格式说明符可以做到这一点,但对于我们来说,r 和 o 格式说明符是我们关心的关于 DateTimeStyles.RoundtripKind 的问题。您可以看到所有日期时间格式说明符 here .看看当我们使用这些格式说明符在代码中进行转换时会发生什么:
//r corresponds to RFC 1123 format (GMT date time format)
var gmtDateTimeString = DateTime.Now.ToString("r"); //gives Fri, 23 Sep 2016 15:39:21 GMT
//o corresponds to ISO 8601 (Local date time format)
var localDateTimeString = DateTime.Now.ToString("o"); //gives 2016-09-23T15:39:21.8899216+05:30
您可以清楚地看到输出的字符串日期时间中嵌入了信息,这表明:
现在是第二部分。如果我必须将存储在 gmtDateTimeString
和 localDateTimeString
中的日期时间字符串转换回日期时间对象,那么我们需要解析它们。因此,在传递给 DateTime.Parse API 的 DateTimeStyles.RoundtripKind 枚举值的帮助下,您实际上表示时区信息已经包含在字符串中,并且 API 会适本地解析日期时间使用该信息。
通常,当日期时间数据以 XML 格式通过线路传输时,将使用 ISO 8601 格式,我在该帖子中发布问题之前在我提到的帖子中看到了这种格式。因此,在解析从 XML 文档中获取的此类日期时间字符串时,可以根据字符串中存在的时区信息使用 DateTimeStyles.RoundtripKind 来获取正确的日期时间值。
关于c# - DateTimeStyles.RoundtripKind 枚举是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39572395/
我有以下代码: JsonReader reader = new JsonTextReader(new StringReader(content.ToString(
我正在阅读这个答案 here我在哪里遇到这个枚举值 DateTimeStyles.RoundtripKind。我现在正在努力理解它。我查看了 MSDN 文档 here其中说: The DateTime
我是一名优秀的程序员,十分优秀!