如何设置DateTime格式而不转换为字符串

时间:2014-03-27 12:15:57

标签: c# json datetime

我有一个具有日期时间属性的Person类。 Person类型的对象作为oData响应发回。响应是json。

"FirstName": "Tim",
"LastName": "Sam",
"EmailID": "tim@xyz.com",
"CompanyName": null,
"CreatedDate": "2014-03-18T19:24:30.847"

Web上的很多帮助建议使用ToString并指定格式。 如何在不使用字符串更改的情况下以mm / dd / yyyy设置日期,以便在json中看到相同的内容?

问候。

4 个答案:

答案 0 :(得分:0)

  

如何设置日期,单位为mm / dd / yyyy而不需要更改为   串

jSon中的日期传递是一个字符串,因此您可以将其作为字符串传递。日期以tick的数量存储,并且没有数据对象格式的格式只是一种表示。月份的mmMM

string strDateForJson = dateTimeObject.ToString("MM/dd/yyyy");
  

在内部,所有DateTime值都表示为刻度数   (自100纳秒间隔的数量)已经过去了   001. 1月1日午夜12:00:00实际的DateTime值是   独立于该值在a中显示时的显示方式   用户界面元素或写入文件时。一个人的外表   DateTime值是格式化操作的结果。格式化是   将值转换为字符串表示形式MSDN

的过程

答案 1 :(得分:0)

  

“如何设置日期,单位为mm / dd / yyyy,而无需更改为   字符串“

你做不到。 DateTime值是某个时间点的数字表示,它不包含有关格式的任何信息。

将格式转换为字符串以显示格式时,将决定格式。如果您不将其转换为特定格式,则使用默认格式,这取决于转换完成的代码的区域性设置。

此外,JSON标准根本没有任何Date类型,因此您实际上无法在JSON字符串中放置DateTime值。您需要使用非标准解决方案,或将DateTime值转换为其他类型。

答案 2 :(得分:0)

你做不到。 DateTimeDateTime,就是这样。

如果您想将其表示为其他内容,则必须将其转换为其他内容 - 比如说一个字符串。这就是建议使用特定格式转换为字符串的原因。

因此,虽然它可能不是你想要的答案,但你的解决方案基本上是这样的:

yourDate.ToString("MM/dd/yyyy");

答案 3 :(得分:0)

为了防止将来出现问题,我会考虑在接口中使用string而不是DateTime(例如格式为mm / dd / yyyy)。在客户端和服务器端,您可以以您需要的任何格式转换它。