首页 > 解决方案 > 格式化 C# 对象列表中的所有日期属性

问题描述

我在格式化对象列表中每个日期属性的 DateTime 时遇到了很大的问题。以下是我迄今为止尝试过的一些示例:

var data = vulnerabilityList.Skip(skip).Take(pageSize).ToList()
    .Select(v => { v.PublishedDate = 
    v.PublishedDate.ToString("dd/MM/yyyy"); return v; });

var data = vulnerabilityList.Skip(skip).Take(pageSize).ToList()
    .Select(v => { v.PublishedDate = 
        DateTime.ParseExact(v.PublishedDate.ToString(), "dd/MM/yyyy", 
            CultureInfo.CurrentCulture); return v; });

最终,我希望格式为 2017 年 12 月 31 日,它将以 JSON 格式返回,因此似乎忽略了漏洞类上的数据注释。第一个示例没有编译,因为它显然试图将 DateTime 设置为字符串,但我将它作为我想要做的示例包含在内。

谢谢

标签: c#asp.net-core-2.0datetime-format

解决方案


日期时间是使用数字表示的日期和时间,它没有固有的格式。它旨在让您在阅读或向用户显示时按照您想要的方式对其进行格式化。所以做这样的事情:

v.PublishedDate = (DateTime)v.PublishedDate.ToString("dd/MM/yyyy")

只会将发布日期设置为 dd/MM/yy 00:00:00(如果它确实有效)。

我相信您需要做的是改变最终解析 JSON 的方式,或者将 DateTime 作为字符串存储在新属性中以供读取。


推荐阅读