0

在 .net Framework 4.8 中,我试图通过YamlDotNet序列化一个包含DateTime字段的对象,通常通过DateTime.Now调用创建。我为该对象使用了一个自定义序列化程序,使用以下作为键的值进行序列化。这会产生一个有效的 yaml,我可以反序列化。

session.StartTime.ToString(CultureInfo.InvariantCulture)

Yaml 生成:

StartTime: 03/27/2020 18:59:27

反序列化时,我得到一个DateTime具有相同年、月、日、小时和秒的对象,但刻度似乎不同

637209323680070971- 在原版上

637209323680000000- 在反序列化的一个:

我怎样才能序列化/反序列化它以使 2 个对象相同?

我不需要额外刻度提供的准确性,但不知道如何删除它们或解决此错误的正确方法是什么

4

1 回答 1

1

如果你不关心毫秒,你不需要做任何事情,因为被解析的值等于你在 YAML 中写入的值。

如果您需要毫秒,可以使用往返格式"o"

session.StartTime.ToString("o", CultureInfo.InvariantCulture)

默认情况下,YamlDotNet 将使用Convert.ChangeType来解析日期,并且该方法接受该格式等。

于 2020-03-27T22:47:41.357 回答