0

我建立了一个动态表单系统,它接受文本字段、下拉列表和日期时间的类型。

表单答案也是动态的,所有内容都存储为文本或 id 的文本版本到下拉答案。

对于日期时间,我想知道将 ac# datetime 序列化为文本的最佳格式是什么,纯粹用于序列化。我已经不得不往返于 Unix tics 扩展工作,我可以使用它以及我的 javascript 调用。但我觉得有更好的选择。

显然 DateTime.Parse 会在回来的路上使用,但是在出去的路上使用什么呢?

4

2 回答 2

4

您只需使用ToString适当的标准自定义日期/时间格式字符串。

但是,您需要非常小心:

  • 我建议使用CultureInfo.InvariantCulture来执行转换(解析时也是如此)以避免特定于文化的值
  • 您需要考虑是否还要序列KindDateTime​​. 这些总是局部的、普遍的或未指定的DateTime值吗?您是否也应该实际使用DateTimeOffset和序列化偏移量?
  • 你需要什么精度?
  • 还有什么会读取这些数据?像 ISO-8601 这样的“标准”格式可能是一个好主意,可能会扩展以保持与自身相同的精度DateTime。(标准oO格式字符串将生成 ISO-8601 字符串。)
于 2012-07-07T14:17:04.867 回答
0

对于往返 DateTime 值,显而易见的解决方案是使用“o”格式说明符

除非您对字符串的长度有限制,并且准备牺牲精度、Kind 属性(UTC 或本地),或两者兼而有之。在这种情况下,请使用满足您需求的自定义格式字符串。

于 2012-07-07T14:22:57.420 回答