【问题标题】:asp classic need to get current time in ESTasp classic 需要在 EST 中获取当前时间
【发布时间】:2014-12-02 13:20:07
【问题描述】:

我需要获取当前的东部时区。 我正在使用 asp 经典。我尝试了很多,但我没有得到解决方案。 任何人都可以帮助我。 我在用 现在()

要获取 vb 经典中的当前值,但我需要东部时区的当前时间。

【问题讨论】:

  • 获取 UTC 时间 -> stackoverflow.com/a/11441116/246342 添加偏移量(记住有些地方在夏天会使用夏令时)
  • 如果您希望整个应用程序使用 EST,并且服务器上没有其他可能受到影响的应用程序,请在 Windows Server 的区域设置中更改时区。请记住,经典 ASP 从服务器的区域设置中获取日期/时间信息。

标签: asp.net datetime time asp-classic


【解决方案1】:

我不同意转换为 UTC 时间是要走的路,正是因为这样你就可以处理夏令时带来的麻烦了。相反,找出服务器设置的时区,找出从那个时间到东部时间的偏移量,然后使用Now 而不是Now。 (当然,如果服务器不在西海岸,则将 3 替换为正确的数字。)

【讨论】:

  • 感谢您的帮助。
  • 这使得代码依赖于服务器时区。获取 UTC 并转换为 EST/EDT 意味着如果有人更改服务器时区(或代码移动到另一台服务器或其他),它不会影响计算。我认为这就是 Alex K 首先建议 UTC 的原因。还有一个假设是服务器和您所针对的任何 EST 区域同时以相同的方式庆祝 DST。无论哪种解决方案都是如此,但如果您使用 UTC,则必须明确处理它,而不是依赖于服务器与目标语言环境时间的差异。
  • @Craig,这是严重过早的优化。实际上,服务器更改时区的可能性实际上为零,如果您必须更改服务器,无论如何您都必须修复代码。
  • 更改服务器上的时区相当简单。在共享托管环境中,甚至在您不是唯一有能力和权限的人的环境中,防御性编码是一个好主意。即使在同地或专用环境中,升级硬件和移动站点也并不罕见。如果我可以通过做一些简单的事情来限制我必须在简单的硬件或操作系统升级上重新访问多少代码,比如用更少的假设来管理时区,我根本不会称这为时过早。无论如何,任何一种解决方案都可以。只是提供选择。
【解决方案2】:

Alex K 以评论的形式给出了正确的答案。这是答案的形式:

获取 UTC 时间 -> stackoverflow.com/a/11441116/246342 添加偏移量(记住有些地方在夏天会使用夏令时)

对于我的应用程序,我尝试将所有时间存储为 UTC 以避免此问题。对于某些日期/时间计算,我可以使用服务器的本地时区,例如当我只需要知道经过的时间时。所以我只是小心确保服务器时区是我所期望的,以防我需要显示它。例如,我们的营销部门认为让我们的特价商品在“UTC 午夜”到期并不是很方便,所以我们只说“中部时间午夜”,让人们在脑海中转换为当地时间。在内部,我可以将 Now 与优惠的到期日期进行比较,并且效果很好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-10
    • 2015-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-31
    相关资源
    最近更新 更多