nis*_*doo 3 c# datetime nullable datetimeoffset
如何计算可空的DateTimeOffset之间的时间?到DateTimeOffset.Now?
我需要像"x day y hours ago"这样的结果
我开始做这样的事情.
var creationTime = //A nullable DateTimeOffset on Database
var difference = DateTimeOffset.Now.Subtract(creationTime);
Run Code Online (Sandbox Code Playgroud)
但由于creationTime是一个可以为空的时间,它给了我一个错误,我无法找到差异.
根据您对NULL数据库值的期望差异,您可以使用??运算符简单地处理此问题:
DateTimeOffset? creationTime = null; // A nullable DateTimeOffset on Database
DateTimeOffset rightnow = DateTimeOffset.Now;
DateTimeOffset somewhen = creationTime ?? rightnow; // if NULL, it's NOW
var difference = rightnow.Subtract(somewhen);
Run Code Online (Sandbox Code Playgroud)
(当然可以??在读取数据库值时使用时间短)
首先测试它是否有一个值HasValue以及它是否使用该Value属性来获取实际值
if(creationTime.HasValue)
TimeSpan difference = DateTimeOffset.Now.Subtract(creationTime.Value);
Run Code Online (Sandbox Code Playgroud)
或者,如果您有一个默认值,您可以使用 GetValueOrDefault
TimeSpan difference = DateTimeOffset.Now.Subtract(creationTime.GetValueOrDefault(default));
Run Code Online (Sandbox Code Playgroud)
最后一个选择是只使用-运算符。
TimeSpan? difference = DateTimeOffset.Now - creationTime;
Run Code Online (Sandbox Code Playgroud)
但请注意,这difference将是 aTimeSpan?并且将是nullif creationTimeis null。
| 归档时间: |
|
| 查看次数: |
7407 次 |
| 最近记录: |