Asp.net 关于根据用户时区存储和显示日期和时间

Asp.net 关于根据用户时区存储和显示日期和时间,asp.net,sql-server,datetime,Asp.net,Sql Server,Datetime,有多少像StackOverflow和forum.asp.net这样的在线论坛会显示问题并发布带有日期和时间的答案 它们如何将日期和时间存储到sql server表中 他们是否以UTC格式存储日期和时间 有时论坛会显示8小时前提出的问题和6.10分钟前发布的答案 他们如何将utc日期和时间与当前日期和时间区分开来? 他们如何将utc日期和时间与用户时区时间进行区分 假设我的网站和数据库托管在美国服务器上。 假设有人在8月21日上午9:34从印度问了一个问题,并在8月20日晚上从美国发布了一个答案,

有多少像StackOverflow和forum.asp.net这样的在线论坛会显示问题并发布带有日期和时间的答案

它们如何将日期和时间存储到sql server表中

他们是否以UTC格式存储日期和时间

有时论坛会显示8小时前提出的问题和6.10分钟前发布的答案

他们如何将utc日期和时间与当前日期和时间区分开来? 他们如何将utc日期和时间与用户时区时间进行区分

假设我的网站和数据库托管在美国服务器上。 假设有人在8月21日上午9:34从印度问了一个问题,并在8月20日晚上从美国发布了一个答案,但论坛显示的信息如下:

8月21日9:34发布的问题

答案于8月21日9:38发布

这怎么可能? 它显示的日期和时间正确吗

请讨论我们应该如何以UTC格式在sql server db中存储日期和时间,以及如何显示不会在读者心目中造成混淆的结果

指导我使用概念和示例。人们无需登录即可访问任何论坛问题。那个么服务器将如何知道用户来自哪个国家以及用户时区是什么呢?在asp.net中,我们可以从服务器端知道什么是用户时区吗

当用户请求一个页面时,从代码文件中我们可以知道什么是用户时区吗

我看到论坛在服务器端生成发布的问题和答案的日期和时间信息,然后将html传输到客户端。因此,任何网站如何知道用户从哪个时区请求页面。如果可能的话,我们可以将日期和时间转换为用户时区


寻找指导线。谢谢

一般来说,日期和时间应该存储在UTC中,并且只显示在UI层的本地时间

StackOverflow使用客户端JavaScript来转换:

<span title="2015-08-28 09:19:09Z" class="relativetime" />

进入

24分钟前
(这是一个jQuery插件的例子)

这是因为JavaScript正在客户端执行,因此它知道“浏览器”的时区


从ASP.NET web应用程序中确定时区是。

谁关闭了它……。为什么有人关闭了它。看起来像是这个问题的重复:一个问题。假设我在谷歌搜索了一些东西,一个stackoverflow链接出现,我点击它,然后在我的浏览器中加载页面。因此,当页面加载到我的浏览器中时,响应在服务器端生成,然后javascript如何根据用户时区将日期和时间转换为本地日期和时间,因为日期和时间是在服务器端生成的。@Thomas
2015-08-28 09:19:09Z
中的
Z
部分告诉javascript这是UTC时间。如果你知道你的本地时区偏移量,从UTC到本地时间的转换是微不足道的。那么你的意思是说UTC从服务器端呈现,当在客户端pc上下载页面时,我们必须使用一些js库,比如moment.js,将UTC日期和时间2015-08-28 09:19:09Z转换为本地时间?我是否正确地得到了u?日期时间数据中的
Z
表示什么?z表示是UTC还是其他什么?@Thomas使用客户端JS将是最简单的解决方案。是的,Z表示
<span title="2015-08-28 09:19:09Z" class="relativetime">24 mins ago</span>