本地计算机未找到时区ID“CST”。

3

我在MAC操作系统上创建运输时遇到了问题。在Windows操作系统中,该网站可以正常使用。任何帮助将不胜感激。

谢谢。

代码:

createOrUpdateShipment: function (shipmentHeader) {


----------

        var tzm= (/\((.*)\)/.exec(new Date().toString())[1]);
        return $http.post('/shipment/CreateOrUpdateShipment?tzm='+tzm, shipmentHeader)
    },

而在控制器中

 public ActionResult CreateOrUpdateShipment(ShipmentInfo shipmentInfo, string tzm)
    TimeZoneInfo tzi = TimeZoneInfo.FindSystemTimeZoneById(tzm);
shipmentInfo.ServiceInfo.READYDATETYPE =       TimeZoneInfo.ConvertTime(shipmentInfo.ServiceInfo.READYDATETYPE,tzi);  

当我尝试使用MAC操作系统创建运输时,出现以下错误:

出现错误:时区未找到异常。找不到时区ID“CST”



3
建议使用.NET中的DateTimeOffset或类似NodaTime的软件包处理本地化日期和时间,而不是依赖于在语言和平台之间可能会有所不同的命名时区。 - undefined
这个问题被回答了吗? - undefined
1个回答

3

.NET中的时区是通过全名而不是缩写来标识的。您正在调用FindSystemTimeZoneById。此API需要使用"Central Standard Time"而不是"CST"

我猜您的Mac客户端发送了tzm=CST,而Windows客户端发送了tzm=Central+Standard+Time。只有当客户端将其拼写出来时,您的服务器才能正常工作。


1
请参阅https://dev59.com/RmUp5IYBdhLWcg3wY29V,了解有关时区缩写的更多信息。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接