我有一个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中看到相同的日期?
问候。
"如何设置日期(mm/dd/yyyy)而不需要更改字符串"
你不能那样做。DateTime
值是一个时间点的数字表示,它不包含任何关于格式的信息。
格式是在您将其转换为字符串以显示它时决定的。如果不将其转换为特定格式,则使用默认格式,这取决于执行转换的代码的区域性设置。
同样,JSON标准根本没有任何Date类型,所以你实际上不能在JSON字符串中放入DateTime
值。要么您需要使用非标准的解决方案,要么将DateTime
值转换为不同的类型。
如何设置日期(mm/dd/yyyy),而不需要修改字符串
jSon中的Date传递是一个字符串,所以您可以将其作为字符串传递。日期以tick的数量存储,没有数据对象的格式,格式只是一种表示。月的mm
为MM
。
string strDateForJson = dateTimeObject.ToString("MM/dd/yyyy");
在内部,所有DateTime值都表示为刻度数(100纳秒间隔的数量)0001年1月1日午夜12:00:00。实际的DateTime值为中显示该值时的显示方式无关用户界面元素或写入文件时。a的出现DateTime值是格式化操作的结果。格式是将一个值转换为它的字符串表示形式MSDN的过程。
你不能。DateTime
就是DateTime
,就是这样。
如果你想把它表示成别的东西,你必须把它转换成别的东西——比如一个字符串。这就是为什么建议将其转换为具有特定格式的字符串的原因。
所以,尽管这可能不是你想要的答案,你的解决方案基本上是这样的:
yourDate.ToString("MM/dd/yyyy");