gpt4 book ai didi

asp.net - MonoTouch 和 .NET 上的 TimeZoneInfo 不匹配

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:19:53 25 4
gpt4 key购买 nike

在 MonoTouch 上使用 TimeZoneInfo.Local.Id 时,我得到 CET(欧洲中部时间)。在 ASP.NET 上,我得到 Central Europe Standard Time

我需要将时区从 iOS 设备 (MonoTouch) 传输到我的 ASP.NET Web 服务。仅传输时区差异 (UTC +1) 是不够的,因为这不符合特定国家/地区的夏令时设置。

将 iPhone 的时区获取到我的网络服务的最佳方式是什么?

最佳答案

MonoTouch 中的时区数据源不止一个。

一个来自 .NET 基类库 (BCL),System.TimeZoneInfo,它旨在与 Microsoft .NET 实现兼容(它是结构,而不是数据)。它有两个缺点。

  • 它不是 100% 兼容 MS 数据(使用了不同的数据源);

  • 如果不使用更新的 MonoTouch 重新构建您的应用程序,它就无法更新;

另一个是绑定(bind)到 iOS API 的 MonoTouch.Foundation.NSTimeZone。 API 有点不同,但它返回的数据与其他 iOS 应用程序将使用的数据相匹配,并且会更新(通过 iOS 更新)。

What's the best way to get the iPhone's time zone to my web service?

IMO MonoTouch.Foundation.NSTimeZone 更适合上述原因。

It is not sufficient to just transfer the time zone difference (UTC +1), since this does not respect the country-specific Daylight Saving Time settings.

至于您与 UTC 的偏移量,您可以通过以下方式获得特定于日光的偏移量(以秒为单位):

var dlo = NSTimeZone.LocalTimeZone.DaylightSavingTimeOffset (NSDate.Now);

关于asp.net - MonoTouch 和 .NET 上的 TimeZoneInfo 不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10174238/

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