有没有一种方法可以在.NET中表示只有时间的值而不带日期?例如,标明store 的开业时间?

TimeSpan表示一个范围,而我只想存储一个时间值.使用DateTime表示这将导致新的DateTime(1,1,1,8,30,0),这并不是真正需要的.

推荐答案

正如其他人所说,你使用DateTime忽略日期,或者使用TimeSpan.就我个人而言,我对这两种解决方案都不感兴趣,因为这两种类型都没有真正反映出您试图表达的概念——我认为日期/时间类型是正确的.NET有点稀疏,这是我开始Noda Time的原因之一.在Noda Time中,可以使用LocalTime类型来表示一天中的某个时间.

要考虑的一件事是:一天中的时间不一定是从同一天午夜开始的时间长度……

(另一方面,如果你也想表示一家store 的closing次,你可能会发现你想表示24:00,即一天结束时的时间.大多数日期/时间API(包括野田佳彦时间)不允许将其表示为一天中的时间值.)

.net相关问答推荐

.NET发布的应用程序运行与开发不同的端口

如何将 select 语句详细信息提取到不同的方法中仍然保持Eager 加载?

使用 MassTransit、.NET Core 和 RabbitMQ 的设计挑战

如何在 C# 中自动删除临时文件?

单线程单元 - 无法实例化 ActiveX 控件

.NET - WindowStyle = hidden 与 CreateNoWindow = true?

无法加载文件或程序集 Microsoft.Extensions.DependencyInjection.Abstractions,版本 = 1.1.0.0

使用字典作为数据源绑定组合框

ICommand MVVM 实现

为什么需要 XmlNamespaceManager?

数据库架构更改后更新 LINQ to SQL 类的最佳方法

如何将时间设置为当天的午夜?

如何使我的托管 NuGet 包支持 C++/CLI 项目?

是否可以完全用托管的 .NET 语言编写 JIT 编译器(本地代码)

从 C# 中的字符串中删除最后一个字符.优雅的方式?

/langversion 的错误选项6无效;必须是 ISO-1、ISO-2、3、4、5 或默认值

有没有一种简单的方法来判断 .NET Framework 版本?

在类型 c# 上切换大小写

在 try/catch/finally 中等待的一个很好的解决方案?

嵌套捕获组如何在正则表达式中编号?