格式化C#对象列表中的所有日期属性

时间:2018-05-02 11:12:49

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

我在格式化对象列表中每个日期属性的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; });

最终我希望格式为31/12/2017并且它将作为JSON返回,因此似乎忽略了漏洞类的数据注释。第一个例子没有编译,因为显然它试图将DateTime设置为字符串,但我把它作为我想要做的例子。

由于

1 个答案:

答案 0 :(得分:0)

日期时间是使用数字表示日期和时间,并且它没有固有格式。它旨在让您在阅读或将其显示给用户时将其格式化。所以做这样的事情:

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

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

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