从 db RESTful Web API 最佳实践中传递日期



所以我的数据库中有 2 种类型的日期,date (yyyy-mm-dd)datetimeoffset (yyyy-mm-ddThh:mm:ss.ms+Z),我想知道当我从数据库中获取数据并将其作为 json 传递给 UI/mobile 时,处理它的最佳实践是什么。

我过去总是将日期解析为datetimeoffset所以正常的日期会像2018-09-24T00:00:00.000+00:00而不是简单地2018-09-24但它可以完美地与已经保存在数据库中的datetimeoffset一起使用

您可以通过多种方式处理这种情况。

1:从API端始终给出预定义的日期格式值

示例yyyy-mm-ddThh:mm:ss.ms+Z

根据条件从客户端进行转换。

2:保留不同的视图模型/属性可用于存储yyyy-mm-dd您可以给出string数据类型,yyyy-mm-ddThh:mm:ss.ms+Z只是DateTime。 根据您的数据库,您可以编写条件并映射特定数据。

3:保留一个用于返回日期的属性,并将其设为string

示例:Public string CurrentDate{get;set;},您可以简单地映射数据库值(应该完成转换(。在这种情况下,客户无需担心日期转换,他们可以简单地显示您从 API 传递的内容。

注意:方法3不是可取的,因为在某些地方,用户可能会看到yyyy-mm-dd在其他地方yyyy-mm-ddThh:mm:ss.ms+Z

看看 SQL Server数据类型映射
您将看到 SQL Server 的DateDateTimeDateTime2都映射到 。Net的DateTime数据类型,
DateTimeOffset映射到DateTimeOffset

SQL Server Database Engine type             .NET Framework type
date (SQL Server 2008 and later)            DateTime
datetime                                    DateTime
datetime2 (SQL Server 2008 and later)       DateTime
datetimeoffset (SQL Server 2008 and later)  DateTimeOffset

最新更新