c#如何使用YamlDotNet序列化DateTime,以便反序列化?
在.net Framework 4.8中,我试图通过包含c#如何使用YamlDotNet序列化DateTime,以便反序列化?,c#,.net,yamldotnet,C#,.net,Yamldotnet,在.net Framework 4.8中,我试图通过包含DateTime字段的对象进行序列化,该字段通常通过DateTime.Now调用创建。 我为该对象使用自定义序列化程序,并将以下内容作为键的值。这会产生一个有效的yaml,我可以反序列化它 session.StartTime.ToString(CultureInfo.InvariantCulture) Yaml生成: StartTime: 03/27/2020 18:59:27 当反序列化时,我得到一个具有相同年、月、日、小时和秒的Da
DateTime
字段的对象进行序列化,该字段通常通过DateTime.Now
调用创建。
我为该对象使用自定义序列化程序,并将以下内容作为键的值。这会产生一个有效的yaml,我可以反序列化它
session.StartTime.ToString(CultureInfo.InvariantCulture)
Yaml生成:
StartTime: 03/27/2020 18:59:27
当反序列化时,我得到一个具有相同年、月、日、小时和秒的DateTime
对象,但刻度似乎不同
637209323680070971
-在原件上
63720932368000000
-在反序列化的一个上:
如何序列化/反序列化它,使这两个对象相同
我不需要额外的记号所提供的准确性,但我不知道如何删除它们,也不知道解决此错误的正确方法。如果您不关心毫秒,则无需执行任何操作,因为解析的值等于您在YAML中写入的值 如果需要毫秒,可以使用,
“o”
:
默认情况下,YamlDotNet将使用Convert.ChangeType
解析日期,该方法接受该格式
session.StartTime.ToString("o", CultureInfo.InvariantCulture)