1

我正在创建一个应用程序,我在其中发出部分基于时间戳的哈希值。但是我怎样才能在客户端获得与用户时区无关的时间,因为客户端和服务器很可能不在同一个时区?

4

2 回答 2

7

这听起来像你想要DateTime.UtcNow的。不过,这仍将基于本地系统时钟 - 如果您在任何类型的安全上下文中需要它,您很可能不想信任用户的时钟,而应该只信任服务器上的时间戳。这取决于你的要求,真的。

请注意,如果您正在格式化(例如用于通信)的结果DateTime.UtcNow,那么您应该在不变的文化中对其进行格式化。即使您指定了自定义格式,如果用户的文化是使用不同日历(例如伊斯兰日历)的文化,您最终会得到不同的结果。

或者,由于您需要时间戳,请使用DateTime.Ticks(当然,在调用的结果上DateTime.UtcNow)。听起来你并不真正关心任何关于月、年、一天中的时间等的人类概念——你只想要一个任意的值来衡量时间,这就是你想要的Ticks

于 2013-02-26T07:27:51.623 回答
4

DateTime.UtcNow用于您的目的。

获取一个 DateTime 对象,该对象设置为此计算机上的当前日期和时间,表示为协调世界时 (UTC)。

于 2013-02-26T07:28:16.430 回答