应该使用哪种C#数据类型来存储日期而没有时间?

时间:2015-09-02 14:03:40

标签: c# .net postgresql

PostgreSQL中有一种无时间存储日期的数据类型。在C#中,没有时间存储日期的最佳数据类型是什么?

我们知道,DateTime可以在00:00:00时使用,但这对外部用户来说非常具有误导性,而且日期也没有时区,但DateTime确实如此。 NodaTime不能在我们的项目中使用,因此我们正在寻找原生的.NET解决方案。

2 个答案:

答案 0 :(得分:5)

DateTime没有时区信息,只有通用的UTC /“Local”指标。

当时.NET中没有日期或时间类型。虽然缺少Date会带来不便,但TimeOfDay的缺失是一个更大的问题。人们正在CoreFX Lab存储库中尝试使用Date和TimeOfDay类型。

目前,您必须使用DateTime课程或创建自己的Date课程。即使是SQL Server ADO.NET提供程序也不提供仅限日期或时间的类。

当然,您可以随时“借用”来自CoreFX Lab的MIT许可experimental Date implementation

注意

我了解航空旅行相关软件的痛苦和需求。当我只想与日期进行比较时,必须使用时区是非常烦人的。事情真的开始----虽然我需要在Json和DateTime之间转换以仅传递日期值。

答案 1 :(得分:1)

没有任何数据类型可以满足您在.NET中的需求。

只有DateTime结构包含日期和时间的值。

此外,我没有看到您不使用DateTime并仅向用户显示日期的原因。