c# - 反序列化时将字符串转换为 DateTime
问题描述
我有一个这样的json
[{"date":"2019-04-03(13:43)","storyid":"123363},{""date":"2019-04-03(09:02)","storyid":"123555"},{"date":"2019-04-03(08:44)","storyid":"664224"}]
我正在使用 c# 和 .net 框架将 json 反序列化为这样的 NewsHeadlines 列表。
JsonConvert.DeserializeObject<List<NewsHeadline>>(json);
这可以按预期工作,只是我想要一个名为 Date 的特定格式的 DateTime 属性(“yyyy-MM-dd(HH:mm)”)。我可以在反序列化后更改日期时间的格式,但我很想知道是否有办法在设置级别更改它。有人可以帮我理解如何做到这一点吗?
[DataMember(Name = "date")]
public DateTime Date {get;set}
[DataMember(Name = "storyid")]
public string StoryId {get; set;}
所以最终结果可以是日期(DateTime 对象),值为 2019-04-03(13:43)
解决方案
public class MyDateTimeConverter : IsoDateTimeConverter
{
public MyDateTimeConverter()
{
//Take care of the format here
base.DateTimeFormat ="yyyy-MM-dd(HH:mm)";
}
}
[JsonConverter(typeof(MyDateTimeConverter))]
public DateTime Date { get; set; }
推荐阅读
- javascript - 如何让 Visual Studio Code (VS Code) 显示对象的方法预览?
- sass - 如果 css 和 scss 是静态中的单独同级文件夹,如何设置 PhpStorm scss 观察程序
- javascript - 如何在反应中循环数据并将值分配给状态数组
- python - 将 matplolib 图保存为 pdf 时出错
- javascript - 如何使用 Axios 禁用参数字符串中的特殊字符转义
- python - ImportError:没有名为“bword2vec”的模块
- python - 在 Python 2.7 中运行程序,而不是在 Python 3.5 中
- visual-studio-code - VSCode:如何仅在打开的文件中搜索和替换文本?
- angular - 模拟的角度测试问题 - 如何定义克隆表(模拟)
- azure-service-fabric - Azure Service Fabric - 围绕框架的困惑