c# - 格式化 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 设置为字符串,但我将它作为我想要做的示例包含在内。
谢谢
解决方案
日期时间是使用数字表示的日期和时间,它没有固有的格式。它旨在让您在阅读或向用户显示时按照您想要的方式对其进行格式化。所以做这样的事情:
v.PublishedDate = (DateTime)v.PublishedDate.ToString("dd/MM/yyyy")
只会将发布日期设置为 dd/MM/yy 00:00:00(如果它确实有效)。
我相信您需要做的是改变最终解析 JSON 的方式,或者将 DateTime 作为字符串存储在新属性中以供读取。
推荐阅读
- java - 将 curl 命令转换为 RestTemplate
- c# - 我应该假设发件人可以为空吗?
- java - Bazel:如何构建使用 JNI 的 C++ 应用程序?
- android - Gradle 在运行 Android 检测时忽略 testProguardFile
- vue.js - 自定义组件上的vuejs中的单击事件?
- javascript - 使用 Jest 模拟获取请求时出错:TypeError:无法读取属性 'createEvent' of null'
- reactjs - 单击获取的下拉值时,应用程序应转到不同的路线
- python - 如何在谷歌语音中获取时间信息到文本 Python API 客户端?
- laravel - Laravel:找不到类“Google_Client”
- java - Gradle:通过使用 `Configuration` 及其依赖集找出 Maven 依赖范围