【发布时间】:2015-11-24 12:04:39
【问题描述】:
我创建了一个返回时间跨度的 C# REST WCF 服务。在客户端,我得到 JSON 序列化的返回值,如 PT14H、PT16H 等。如何将此字符串转换为实际时间跨度?
【问题讨论】:
-
欢迎来到 SO。您应该尝试通过发布代码自己研究或确定答案。 Javascript中的时间跨度是什么?哪有这回事。那么你希望它如何在客户端表示/使用
-
在 C# WCF 服务中创建的 TimeSpan 对象被序列化为“PT14H”格式的 json 对象并返回给客户端。但是客户端没有办法将此值反序列化为实际的 TimeSpan
-
是的,我明白你在说什么。关键是 Javascript 中的“实际”时间跨度是什么意思?时间跨度是一个 .NET 结构。实际上,您想要的也许是几秒钟?或者它代表的分钟数 - 所以传回 TimeSpan.TotalSeconds - 这完全取决于您实际计划如何在客户端使用它。
-
嗨,肖恩,感谢您的快速支持。在我的例子中,我们使用两种类型的绑定。 WsHttpBinding 和 WebHttpBinding。在 WSHttpBinding 中,C# 客户端代码按预期处理时间跨度。所以我们需要为 WSHttp 和 WebHttp 带来一个通用的返回类型。在 webHttpBinding 中,我注意到 JSON 结果 PT14H 代表 14:00:00,PT14H32M45S 代表 14:32:45。这意味着PT代表时间,H代表小时,M代表分钟,S代表秒。
-
我所说的只是你可能过于复杂了,而实际上它只是在下面几秒钟。但是如果你想解析它,现在你知道它背后的逻辑只是将它转换为你可以处理的东西。那会是什么?因此,您将花时间将其解析为小时、分钟、秒。我的意思是为什么要打扰。这就是为什么 Unix/epoch 时间被大量使用的原因——它只是一个整数。
标签: javascript json timespan