如何设置日期时间格式而不转换为字符串

本文关键字:格式 转换 字符串 时间 日期 何设置 设置 | 更新日期: 2023-09-27 17:54:30

我有一个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的数量存储,没有数据对象的格式,格式只是一种表示。月的mmMM

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");