如何让时间与时区无关

时间:2013-02-26 07:26:51

标签: c# .net

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

2 个答案:

答案 0 :(得分:7)

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

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

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

答案 1 :(得分:4)

DateTime.UtcNow用于您的目的。

  

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