如何在RemoteApp中处理不同的时区

Man*_*ish 1 c# timezone datetime remoteapp

我有一个Windows应用程序,部署为remoteapp.我正在尝试使用C#DateTime.Now生成时间戳.我很想知道,如果用户从一个与托管应用程序的服务器时区不同的地方使用该应用程序,将如何生成时间戳.它是特定于服务器还是特定于用户机器.如果它是根据服务器时区,有没有办法使其特定于用户机器?

Jon*_*eet 5

我正在尝试使用C#DateTime.Now生成时间戳.

强烈建议不要这样做.这将使用运行代码的系统的时区.它不适合时间戳.特别是:

  • 除非您还记录UTC偏移量,否则您将无法以任何特别有意义的方式知道事件何时实际发生,包括将一个时间戳与可能在不同时区捕获的另一个时间戳进行比较
  • 您会发现由于时区转换,时间戳可以及时倒退

相反,对所有时间戳使用UTC - 所以DateTime.UtcNow- 并确保使用这些时间戳的每个地方都知道它们是UTC.

使用UTC即使,如果你使用DateTime.UtcNow的时间戳将基于系统时钟,因此,如果他们对可能具有不彼此同步系统时钟多台机器产生的,您的时间戳不会给一个明确的订购......但你会比使用系统本地时区更好的位置.