0

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

2012-09-28 14:56:48.910

当它被 JSON.NET 解析时,它变得更加陌生。我得到:

2012-09-28T14:56:48.91

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

4

2 回答 2

4

这根本不是一种“奇怪”的格式。第二种形式是ISO-8601;第一个是没有T. 考虑到您可以在 JSON中获得的奇怪格式,看起来您已经很轻松了!

序列化格式并不意味着用户友好,特别是 - 它们是机器对机器的格式。

希望JSON.NET 会给你一个DateTime解析后的结果;它应该只在您转换回 JSON 后为您提供 ISO-8601 格式。

如果您有一个DateTime要格式化以供用户使用的格式,则有各种带有标准自定义格式字符串的选项。不要忘记您应该尽可能尊重用户的文化 - 因此请确保您正在采取适当的步骤将线程的当前文化设置为用户的文化,或者您正在明确地传递文化到DateTime.ToString

于 2012-09-28T22:43:36.063 回答
0

您可以在 C# 中尝试:

.ToString("MMM d yyyy, h:mm tt")
于 2012-09-28T22:46:54.243 回答