如何在文本数据库字段中存储c#datetime

时间:2012-07-07 14:14:37

标签: c# .net datetime

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

表单答案也是动态的,所有内容都以文本形式存储,或者将ID的文本版本存储到下拉列表答案中。

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

显然DateTime.Parse将在回来的路上使用,但在出路时要使用什么?

2 个答案:

答案 0 :(得分:4)

您只需将ToString与适当的standardcustom日期/时间格式字符串一起使用。

但是,你需要非常小心:

  • 我建议使用CultureInfo.InvariantCulture执行转换(同样在解析时)以避免特定于文化的值
  • 您需要考虑是否同时序列化Kind的{​​{1}}。这些值是否始终是本地的,通用的或未指定的DateTime值?您是否应该实际使用DateTime并序列化偏移?
  • 您需要什么精度?
  • 还有什么会读这些数据?像ISO-8601这样的“标准”格式可能是一个好主意,可能会扩展到与DateTimeOffset本身保持相同的精度。 (标准DateTimeo格式字符串将生成ISO-8601字符串。)

答案 1 :(得分:0)

对于往返日期时间值the obvious solution is to use the "o" format specifier

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