[英]How do I convert a DateTimeOffset? to DateTime in C#?
我需要转换DateTimeOffset吗? 到DateTime。 该值最初来自XAML CalendarDatePicker,但我需要将其更改为DateTime来存储值。 我已经找到了有关如何转换DateTimeOffset的描述 ,但我认为它不能回答我的问题,因为它们不使用可为空的类型。
可为空的类型很有用,但一开始有时会造成混淆。 Nullable<T>
是一个结构,其中T也是一个结构。 该结构包装实例变量T的值,并公开三个主要成员。
HasValue // Returns bool indicating whether there is a value present.
Value // Returns the value of T if one is present, or throws.
GetValueOrDefault() // Gets the value or returns default(T).
您可以通过添加' ?
使任何结构可为空?
'在声明变量类型之后,或者通过将变量类型包装为Nullable<
此处的变量类型>
。 如下图所示:
Nullable<DateTimeOffset> a = null;
DateTimeOffset? b = null;
我相信您想要在这里检查的是.HasValue
是否确实存在一个值,然后从偏移量中获取.Value
并执行标准转换。
例
var now = DateTime.Now;
DateTimeOffset? offset = now;
DateTime dateTime = offset.HasValue ? offset.Value.DateTime : DateTime.MaxValue;
或者,如果您想要一个DateTime?
做这个:
var now = DateTime.Now;
DateTimeOffset? offset = now;
DateTime? dateTime = offset.HasValue ? offset.Value.DateTime : (DateTime?)null;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.