C# .NET WebAPI C中OK()函数中的UTC时区#
我有一个.NETC# .NET WebAPI C中OK()函数中的UTC时区#,c#,datetime,asp.net-web-api,utc,C#,Datetime,Asp.net Web Api,Utc,我有一个.NETWebAPI,它以JSON的形式返回一些日期。 我正在使用Ok()函数,它获取C#DateTime列表并将它们转换为JSON数组 我的要求是在任何情况下指定时区(偶数+00:00) 现在,我使用的格式是: jsonSerializerSettings.DateFormatString = "o"; 它使用ISO标准和“Z”来指定UTC 不幸的是,我的web应用程序不理解这样的约定(我的意思是,最后的“Z”),它要求在任何情况下都存在时区偏移。 换句话说,我想用“+00:00”代
WebAPI
,它以JSON
的形式返回一些日期。
我正在使用Ok()
函数,它获取C#DateTime列表并将它们转换为JSON数组
我的要求是在任何情况下指定时区(偶数+00:00)
现在,我使用的格式是:
jsonSerializerSettings.DateFormatString = "o";
它使用ISO标准和“Z”来指定UTC
不幸的是,我的web应用程序不理解这样的约定(我的意思是,最后的“Z”),它要求在任何情况下都存在时区偏移。
换句话说,我想用“+00:00”代替“Z”
我如何告诉WebAPI
使用这种约定
以前我有:
jsonSerializerSettings.DateFormatString = "yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffzzz";
它没有时区信息。这并不像人们希望的那么简单-主要是因为
DateTime
类型是
我建议只处理服务器上的UTC日期(即假设任何传入日期为UTC,将所有内容保存为UTC,并在任何地方返回UTC),并让您的客户决定是否需要为此做些什么(例如,转换为本地时间以正确显示)。然后,它可以像设置一样简单
jsonSerializerSettings.DateFormatString = "yyyy-MM-ddTHH:mm:ss.fff+00:00";
i、 e.硬编码那里的
+00:00
,因为你(通过假设)知道它将是UTC。这并不像人们希望的那么容易-主要是因为日期时间
类型是
我建议只处理服务器上的UTC日期(即假设任何传入日期为UTC,将所有内容保存为UTC,并在任何地方返回UTC),并让您的客户决定是否需要为此做些什么(例如,转换为本地时间以正确显示)。然后,它可以像设置一样简单
jsonSerializerSettings.DateFormatString = "yyyy-MM-ddTHH:mm:ss.fff+00:00";
i、 e.硬编码那里的+00:00
,因为您知道(假设)它将是UTC。在返回语句中使用而不是使用System.DateTime
(确定)。这将自动将+00:00
添加到序列化字符串中(+00:00假定为UTC时间点)
对于WebAPI2及更高版本,我不确定以前的版本
这也是其他Web API扩展(如oData)的默认日期/时间格式。在返回语句中使用而不是使用System.DateTime
(确定)。这将自动将+00:00
添加到序列化字符串中(+00:00假定为UTC时间点)
对于WebAPI2及更高版本,我不确定以前的版本
这也是其他Web API扩展(如oData)的默认日期/时间格式