本地计算机上的DateTime与Azure不同

问题描述 投票:1回答:2

我知道这可能是一个简单的问题,但我不确定如何解决它。

当我在本地机器上运行这段代码时

if (someDateTime < DateTime.Now)
   // do something

'DateTime.Now'给我时区的当前日期时间,但是当我在Azure中运行'DateTime.Now'给了我不同的时间

恩。本地机器上午12:00说,Azure说上午8:13

我需要做些什么来比较时间'someDAteTime'与我网站上的用户的时间(他/她当前的DateTime.Now)?

azure datetime datetime-format
2个回答
2
投票

Utc()实例上应该有一个DateTime方法,每个编程语言都有类似的东西,因为可能是Atari。

如果这是.NET(完整/核心),只需使用DateTime.UtcNow。更多关于这里 - What is the difference between DateTime.UtcNow and DateTime.Now.ToUniversalTime()

这里的关键在于您始终将UTC时间与UTC时间进行比较,而忽略区域移位。此外,所有Azure服务report time in UTC“开箱即用”。


0
投票

我假设你在客户端使用javascript。

如果您想比较日期,您应该始终使用ISO日期(https://en.wikipedia.org/wiki/ISO_8601)with时区。

您可以使用此库以使用不同的时区:https://momentjs.com/timezone/

和这个库来比较日期:https://momentjs.com/

请注意用户可以在客户端修改日期,因此如果您需要验证关键功能的日期,则应在服务器端进行此验证。

© www.soinside.com 2019 - 2024. All rights reserved.