在asp.net应用程序上显示sql数据库中存储的UTC时间的本地时间

2024-01-18

我已经将时间以 utc 格式保存在 SQL 数据库中。我在网格视图上显示这些时间,但它们仍然是 UTC 格式。我想将它们转换为客户端浏览器的本地时间。问题是,虽然我可以获得仅适用于当前日期/时间的时区偏移量。如果未来的某些日期最终发生在夏令时期间,则该偏移量可能会发生变化。我对 Web 编程相对较新,但似乎我需要做的是运行一些 Javascript,因为每个条目都绑定到 gridview,该 gridview 以某种方式获取 C# datetimeoffset 对象并将其转换为本地时间。或者也许那是不可能的?


如果您有的话,这可以在服务器端完成TimeZoneInfo目的。您可以使用静态ConvertTimeFromUtc() method.

In C#:

DateTime localTime = TimeZoneInfo.ConvertTimeFromUtc(myDbDateTime, myTimeZoneInfo);

如果服务器端没有时区,事情就会变得棘手,因为 javascript 不提供客户端的时区(除非它们在美国,即使这样也仅在某些浏览器上)。在这种情况下,最好强制用户选择当前时区并将其存储在他们的帐户中。如果向匿名用户显示,您可能应该默认以 UTC 显示,并提供一个选项来刷新所选时区。

Update

尝试自动确定用户的时区时会出现几个问题。

  1. 用户代理不向服务器提供时区。
  2. Javascript 不提供对时区的访问(有时在某些浏览器中除外)。

JavaScript 函数getTimezoneOffset()最初听起来可能是个好主意,但由于存在多个具有相同偏移量的时区,因此这不是唯一值。许多非独特区域之间的区别在于它们实施夏令时。

示例:印第安纳州不考虑夏令时。因此,一年中有一半的偏移量与东部时间一致,而另一半的偏移量则等于中部时间。

但是,如果您的用户群主要位于美国并使用 IE、Chrome、Safari 或 Firefox,那么您可以使用toString()上的方法Date对象获取时区。这些浏览器以不同的方式将时区附加到日期字符串。在美国之外,并非所有浏览器都包含时区(尽管有些浏览器可能仍会显示)。

Open http://jsbin.com/onulo3 http://jsbin.com/onulo3观察:
IE8:2010 年 2 月 14 日星期日 22:12:22 美国东部时间
Chrome:2010 年 2 月 14 日星期日 22:12:22 GMT-0500(东部标准时间)
Safari:2010 年 2 月 14 日星期日 22:12:22 GMT-0500(东部标准时间)
Firefox:2010 年 2 月 14 日星期日 22:12:22 GMT-0500(东部标准时间)

通过一些解析,您现在可以确定所有美国用户的时区。对于其他人,您可以显示 UTC 时间(并附有相关通知)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在asp.net应用程序上显示sql数据库中存储的UTC时间的本地时间 的相关文章

  • 如何修改每个JSON对象javascript

    我想修改里面的每个 JSON 值cooldown object cooldown user 1 This user2 0 This 在 Javascript 中使用 for 语句 我研究了好几个小时 只找到了内部的 blocks Edit
  • Three.js:缩放几何图形后错误的 BoundingBox

    在我的场景中 我有一个简单的立方体 var test new THREE Mesh new THREE CubeGeometry 10 10 10 new THREE MeshBasicMaterial scene add test 该立方
  • 在新的 Google 协作平台 <嵌入 HTML> 中使用 localStorage 和 IndexedDB 不起作用

    我正在尝试将新的 Google 协作平台用于我开发的网页 但是 我在存储本地数据时遇到了问题 本地文件在 Windows 和 Apple safari chrome 中运行良好 从 Google 协作平台尝试一下 没有什么乐趣 此外 在 s
  • 如何格式化 Highcharts 的 (x,y) 对数据的日期时间

    我的序列化方法会产生如下所示的日期时间字符串 2014 07 09T12 30 41Z 为什么下面的代码不起作用 function container highcharts xAxis type datetime series data x
  • 如何针对 Node.js 中发生的每个错误发送电子邮件?

    假设我的 node js 应用程序正在运行 如果出现错误 我的意思是所有错误 不仅仅是网络错误 如果出现错误 则很重要 我如何调用函数向我发送电子邮件 基本上 在我希望它写入 err out 之前 我希望向我发送一封电子邮件 我正在使用no
  • Draggable JS Bootstrap 模式 - 性能问题

    对于工作中的项目 我们在 JavaScript 中使用 Bootstrap Modal 窗口 我们想让一些窗口可移动 但我们遇到了 JQuery 的性能问题 myModal draggable handle modal header Exa
  • 如何获取正在访问 ASP.NET 应用程序的当前用户?

    为了获取系统中当前登录的用户 我使用以下代码 string opl System Security Principal WindowsIdentity GetCurrent Name ToString 我正在开发一个 ASP NET 应用程
  • 如何使用 C# 中的参数将用户重定向到 paypal

    如果我有像下面这样的简单表格 我可以用它来将用户重定向到 PayPal 以完成付款
  • 如何将函数附加到弹出窗口关闭事件(Twitter Bootstrap)

    我做了一些搜索 但我只能认为我可以将事件附加到导致其关闭的按钮 https stackoverflow com questions 13205103 attach event handler to button in twitter boo
  • 如何纠正流警告:解构(缺少注释)

    我正在编写一个小型 React Native 应用程序 并且正在尝试使用 Flow 但我无法在任何地方真正获得有关它的正确教程 我不断收到错误 destructuring Missing annotation 有关 station 这段代码
  • 调整图像大小并将画布旋转 90 度

    这里有很多关于在 js 上使用画布旋转图像的主题 我阅读了其中的大部分内容 但无法找到解决我的问题的方法 我正在接收任何分辨率的图像 来自上传组件 我将其大小调整为 1024x768 如下所示 var canvas document cre
  • 使用 CSS 或 Javascript 填充动画

    我只是想知道是否可以使用 CSS 或 javascript 创建填充动画 基本上我想创建一个填充动画 如下图所示 http i40 tinypic com eit6ia png http i40 tinypic com eit6ia png
  • Vuejs 2:去抖动不适用于手表选项

    当我在 VueJs 中反跳此函数时 如果我提供毫秒数作为原语 它就可以正常工作 但是 如果我将其提供为对 prop 的引用 它会忽略它 这是道具的缩写版本 props debounce type Number default 500 这是不
  • 在移动设备上滚动

    这个问题更多的是一个建议研究 我确实希望它对其他人有帮助 并且它不会关闭 因为我不太确定在哪里寻求有关此事的建议 在过去的 6 个月里 我一直在进行移动开发 我有机会处理各种设备上的各种情况和错误 最麻烦的是滚动问题 当涉及到在网站的多个区
  • Vue 和 Vuex:处理依赖的计算属性

    我的应用程序是一个使用 Vuex 在 Vue 中构建的精简电子表格 关键组件是TableCollection Table and Row The TableCollection有一个包含多个的数组Table对象 每个Table有一个包含多个
  • 带参数的事件监听器

    我想将参数传递给 JavaScript 中的事件侦听器 我已经找到了解决方案 但我无法理解它们为什么或如何工作以及为什么其他解决方案不起作用 我有 C C 背景 但是 Javascript 函数的执行有很大不同 您能否帮助我理解以下示例如何
  • 使用 MongoDB 和 Nodejs 插入和查询日期

    我需要一些帮助在 mongodb 和 nodejs 中按日期查找记录 我将日期添加到抓取脚本中的 json 对象 如下所示 jsonObj last updated new Date 该对象被插入到 mongodb 中 我可以看到如下 la
  • 如何确定所有角度2分量都已渲染?

    当所有 Angular2 组件完成渲染时 是否会触发一个角度事件 For jQuery 我们可以用 function 然而 对于 Angular2 当domready事件被触发 html 只包含角度组件标签 每个组件完成渲染后 domrea
  • 如何使用asm.js进行测试和开发?

    最近我读到asm js规范 看起来很酷 但是是否有任何环境 工具来开发和测试这个工具 这还只是处于规范阶段吗 您可以尝试使用 emscripten 和 ASM JS 1 并从侧分支在 firefox 构建中运行它 有关 asm js 的链接
  • 如何在react-highcharts中使用图表工具提示格式化程序?

    如何使用图表工具提示格式化程序 我正在使用高图表的反应包装器 我有这样的配置 const CHART CONFIG tooltip formatter tooltip gt var s b this x b each this points

随机推荐