当前位置:  开发笔记 > 编程语言 > 正文

如何转换DateTimeOffset?到C#中的DateTime?

如何解决《如何转换DateTimeOffset?到C#中的DateTime?》经验,为你挑选了1个好方法。

我需要转换DateTimeOffset吗?到DateTime。该值最初来自XAML CalendarDatePicker,但我需要将其更改为DateTime来存储值。我已经找到了有关如何转换DateTimeOffset的描述,但我认为它不能回答我的问题,因为它们不使用可为空的类型。



1> David Pine..:

可为空的类型很有用,但一开始有时会造成混淆。的Nullable是一个结构,其中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 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;

推荐阅读
mylvfamily
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有