【发布时间】:2016-01-30 16:23:30
【问题描述】:
RestSharp 在序列化期间更改我的日期时间对象的时区。例如,当我调试时,原始日期时间对象是 2015-01-02 00:00:00,但是当 RestSharp 对其进行序列化并使用 request.AddBody(object) 将其添加到我的请求中时,有效负载已将日期变为 2015-01-01T22:00:00Z。因此,它在 2 小时内及时将其转换回来。
我目前在瑞典,那里是 GMT+2:00,所以我猜它会默认为 GMT+0?
更新
我从客户那里得到一个String 形式的日期,例如"2015-01-02"。
然后我尝试在以下代码中将其解析为DateTime-object:
if (!string.IsNullOrEmpty(fieldData) && DateTime.TryParse(fieldData, out dateTime)){
budgetUtokad.SlutDatum = dateTime;
}
我需要在这里以某种方式指定Utc?
【问题讨论】:
-
2015-01-02:00:00到底是什么意思?这是一种非常奇怪的格式,目前还不清楚它的含义。你能提供一个简短但完整的例子吗? -
我已经编辑了这个问题,所以现在可能更容易理解了。
-
一点点 - 但你的
2015-01-02 00:00:00值没有任何时区,所以它有点浮动。这并不代表特定的时间点。听起来 RestSharp 将其解释为“您当地时区的那个时间”,这并非完全不合理。 -
那么,为了使这项工作按我的意愿正常工作,我必须以某种方式指定 DateTime 对象的时区?
-
这取决于你想要达到的目标,基本上。我们仍然不知道您真正试图代表什么价值。
标签: c# .net serialization timezone restsharp