C#中的日期时间格式和JSON数据

时间:2012-09-28 22:39:02

标签: c# asp.net json

我在ASP.NET / C#中遇到日期/时间格式问题。我将我的SQL Server数据库设置为PostDate字段设置为“datetime”类型。但它以奇怪的格式保存日期。我在表单中添加了一个新行,并将其作为日期/时间字符串:

2012-09-28 14:56:48.910

当它被JSON.NET解析时,它变得更加奇怪。我明白了:

2012-09-28T14:56:48.91

日期和时间显然是正确的,但是如何设置内容以便我能够以人性化的方式解析日期?实际上没有任何代码要发布,因为插入行时会添加日期。我想将其格式化为“2012年9月28日下午2:56”。我怎么做?在解析为JSON之前或之后我是否需要格式化字符串?

2 个答案:

答案 0 :(得分:4)

那不是"奇怪的"格式化。第二种形式是ISO-8601;第一个是没有T的ISO-8601。考虑the strange formats you can get in JSON,看起来你已经轻松放过了!

序列化格式并非意味着是用户友好的,尤其是 - 它们意味着是机器对机器格式。

我希望在解析之后JSON.NET会给你一个DateTime;只有在您转换回JSON后才能提供ISO-8601格式。

如果您要为用户使用格式设置DateTime,则可以使用standardcustom格式字符串的各种选项。不要忘记你应该尽可能地尊重用户的文化 - 所以要确保你采取适当的步骤,将线程的当前文化设置为用户'是一个,或者你明确地将文化传递给DateTime.ToString等等。

答案 1 :(得分:0)

您可以在C#中尝试:

.ToString("MMM d yyyy, h:mm tt")