进入Service Stack api方法时C#日期时间值发生变化

时间:2014-06-23 19:02:16

标签: c# datetime serialization servicestack

我们正在将ServiceStack用于我们的Web服务,但我们注意到请求DTO中的任何DateTime对象都被更改。小时数根据服务器的时区偏移量而变化。所以说我在东部时间向一个服务器发送请求,该服务器在山区时区托管ServiceStack api,它会在我们的api方法获得请求后将日期更改为两小时。

我一直试图找到如何使用ServiceStack修改datetime值的反序列化以防止这种情况发生,并且还没有找到任何优雅的解决方案。我想通过制作ServiceStack.Text.JsConfig.AssumeUtc = true; 这会将以服务器身份进入服务器的任何日期时间值视为并且不会使用“本地类型”转换为日期时间。它似乎对进入的日期没有影响。

我尝试使用ServiceStack.Text.JsConfig<DateTime>.DeSerializeFn将字符串更改为日期时间,但这样做需要删除除日期时间刻度信息之外的所有信息。

我错过了一些明显的东西吗?似乎应该有一种更简单的方法来防止这种行为。

1 个答案:

答案 0 :(得分:1)

您可能想要使用此代码:

JsConfig.AlwaysUseUtc = true;