c# - DateTime.Now 等效于 TimeOnly 和 DateOnly?
问题描述
.NET 6 / C# 10 引入了TimeOnly
structs DateOnly
,分别只表示时间和日期。
好的旧DateTime
结构总是有一个Now
静态属性,它会给你当前的日期和时间。
我期望TimeOnly
和DateOnly
结构都具有相似的静态属性;喜欢TimeOnly.Now
or DateOnly.Today
,但他们显然不喜欢。
那么,如果我想要一个DateOnly
代表当前日期的TimeOnly
对象,或者一个代表当前时间的对象,我该怎么办?
而且我还想知道为什么他们决定不在这两个新结构中包含这样的属性?
解决方案
你可以使用.FromDateTime()
方法,
仅获取当前日期:
var dateNow = DateOnly.FromDateTime(DateTime.Now);
仅获取当前时间:
var timeNow = TimeOnly.FromDateTime(DateTime.Now);
更多细节,你可以通过Github issue。有几个很好的评论解释了为什么 .Now
不引入属性DateOnly
和TimeOnly
为什么.Today
和属性.Now
都UtcNow
没有引入DateOnly
?
- 从@tarekgh 评论来看,dotnet 社区正试图保持与时区
DateOnly
无关
@tarekgh的下一条评论解释了如果他们将这些属性引入DateOnly
.
在阅读了 github 线程和其他一些文档之后,我觉得引入DateOnly
和TimeOnly
结构只是为了解耦DateTime
.
Date
日期和时间的这种解耦将有助于我们将来单独执行单独的计算Time
。
这将帮助我们在粒度级别上精确地设计模型类。
推荐阅读
- javascript - 修改元素时更新 useState() 数组 REACT
- java - Match two nested logical AND OR expression tree objects
- adobe - Adobe AEM CMS - 如何获得开发人员许可证以在本地安装以评估产品?
- javascript - 通过文本框进行 iframe 导航?
- html - 如何使网站响应?
- c++ - 如何根据模板类型的祖先限制类的实例化
- python - python 3 无法识别这个字符
- javascript - 是否可以从代码的 otger 部分访问 innerHTML 'id'?
- python - 如何检查三个数字是偶数还是奇数?
- multithreading - 如何使用 kotlin 从另一个线程更新列表视图