gpt4 book ai didi

c# - 根据用户时区显示UTC时间

转载 作者:行者123 更新时间:2023-11-30 18:24:49 26 4
gpt4 key购买 nike

我有一些来自 SharePoint 的日期时间值。 SharePoint 以 UTC 格式存储所有时间。因此,在向用户显示时,我使用此代码将 UTC 时间转换为本地时区 -

    internal static DateTime? ConvertTimeFromUtc(DateTime? utcTime)
{
if (utcTime.HasValue)
{
return TimeZoneInfo.ConvertTimeFromUtc(utcTime.Value, TimeZoneInfo.Local);
}
return null;
}

我说的是否正确,这将根据托管 Web 应用程序的服务器的时区返回时间?
目前我们的生产服务器位于英国,用户也位于英国。所以,上面的代码可以正常工作。

但展望 future ,生产服务器甚至用户都可以在世界任何地方。我应该怎么做才能让它没有错误以供将来增强?
我是否需要使用 javascript 来查找当前用户的时区,将该信息保存在 session 中,然后在显示任何日期时间值时使用该信息?

谢谢!

最佳答案

TimeZoneInfo 类可用于管理您的时区需求。

假设您可以在客户端获取与 TimeZoneInfo 使用的 Id 值相对应的字符串(这又直接来自 Windows 注册表,但旨在匹配时区的标准化英文名称),那么您可以使用 TimeZoneInfo.FindSystemTimeZoneById查找正确的对象,并使用例如ConvertTimeFromUtc方法转换为本地时间显示。

我没用过,不过还有Noda Time库来处理您所有的日期/时间管理需求。一个类似的 JavaScript 库是 Moment.js ,如果(看起来)您有一个 JavaScript 客户端并希望在客户端代码中处理本地时间,这可能会很有用。

我不熟悉 JavaScript,但我认为它有一些对时区的内置支持,当然至少有一个库可以做到这一点。

如果是我,我会尝试在客户端处理所有 本地时区问题。 IE。您的服务器端代码根本不应该关心本地时区。至多,如果您希望用户能够覆盖他们工作站上的本地时区,您可以存储该设置并稍后将其返回给客户端。但客户端代码应该转换为本地时间(或用户选择的任何“本地”时区)。

关于c# - 根据用户时区显示UTC时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30800443/

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