我希望将默认值设置为DateTimeOffset -它不应该是DateTime.Now,而应该是DateTime.MinValue或default(DateTime)
有什么想法吗?我该怎么做?这段代码:
DateTimeOffset d = new DateTimeOffset(DateTime.MinValue)抛出异常
发布于 2015-02-25 21:18:53
此代码为您抛出异常的原因是,您可能所在的时区早于UTC -因此当DateTime.MinValue (其Kind为Unspecified)被转换为UTC时,它将变得无效。文档中指定了转换:
如果
DateTime.Kind的值为DateTimeKind.Local或DateTimeKind.Unspecified,则新实例的DateTime属性设置为dateTime,Offset属性设置为本地系统当前时区的偏移量。
不过,您可以只显式指定偏移量:
DateTimeOffset d = new DateTimeOffset(DateTime.MinValue, TimeSpan.Zero);这不会导致任何转换...但我相信它完全等同于default(DateTimeOffset)。(请注意,这更明确--通常是一件好事。)
您可能还希望考虑使用DateTimeOffset?,并在缺少“真实”值时指定null,而不是只使用虚拟值。
https://stackoverflow.com/questions/28719980
复制相似问题