gpt4 book ai didi

将时间从 UTC 转换为指定的时区时出现 .NET PCL 异常

转载 作者:行者123 更新时间:2023-12-05 01:03:51 25 4
gpt4 key购买 nike

我正在使用 C# 在 Xamarin Studio 中开发一个项目。它是一个 .net PCL 项目,我的个人资料是 78。我的问题是,我无法将 DateTime 从 UTC 转换为指定的时区。我正在使用以下代码将 DateTime 从 UTC 转换为指定的本地时区。

   DateTime dateTime = (TimeZoneInfo.ConvertTime (DateTime.SpecifyKind (DateTime.UtcNow, DateTimeKind.Utc), profile.TimeZone));

我低于异常

The Kind property of the dateTime parameter is DateTimeKind.Utc, but the sourceTimeZone parameter does not equal TimeZoneInfo.Utc.



在 PCL TimeZoneInfo.ConvertTime没有用于指定 TimeZoneInfo sourceTimeZone 的参数.它只有 2 个具有以下参数的重载。

ConvertTime(DateTime, TimeZoneInfo) & ConvertTime(DateTimeOffset, TimeZoneInfo)



TimeZoneInfo 的存在仅用于指定目标 TimeZoneInfo。

它也没有 TimeZoneInfo.ConvertTimeFromUtc, TimeZoneInfo.ConvertTimeToUtc方法。

请有人帮我解决这个问题。

最佳答案

添加到汉斯的评论:

This is all entirely by design. Timezone conversions requires an operating system with a database that keeps track of the timezone rules across the world. Available on a desktop class machine, not available on limited devices like a phone. Without the database, you can only know something about UTC and the timezone for which the device was configured. You cannot use PCL if this is a requirement, using a commercial web service to make the conversion for you would be a workaround.



看看 Noda Time .这是一个用于 .NET 的日期/时间库,它有自己的时区数据,因此它不必依赖于操作系统。它还支持 PCL。

关于将时间从 UTC 转换为指定的时区时出现 .NET PCL 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24176274/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com