C# 如何设定世界时

C# 如何设定世界时,c#,.net,C#,.net,我正在使用C.net windows应用程序,需要及时了解使用该应用程序登录的人员, 我用过 Datetime.Now; 以获取人员登录时的当前时间,其工作正常 但问题是,当任何人来更改计算机系统的时间,然后登录时,需要更改的时间,我同意我正在使用 Datetime.now; 所以这需要改变的时间,但是否有任何时候,他/她会在他/她的时间里考虑到宇宙 提前感谢唯一存在的世界时是UTC。您可以通过以下方式进行查询: var utc = DateTime.UtcNow; 如果需要将其显示为考虑

我正在使用C.net windows应用程序,需要及时了解使用该应用程序登录的人员, 我用过

Datetime.Now;
以获取人员登录时的当前时间,其工作正常

但问题是,当任何人来更改计算机系统的时间,然后登录时,需要更改的时间,我同意我正在使用

Datetime.now;
所以这需要改变的时间,但是否有任何时候,他/她会在他/她的时间里考虑到宇宙


提前感谢

唯一存在的世界时是UTC。您可以通过以下方式进行查询:

var utc = DateTime.UtcNow;
如果需要将其显示为考虑时区的本地时间,则可以使用:

utc.ToLocalTime();

现在,这并不能解决您的问题,因为它仍然基于系统时间。任何有足够权限的人都可以更改系统时间。您唯一的选择是向web服务(如时间服务器)请求当前和实时UTC时间。但我认为它不适用于日志记录。

你所说的世界时是什么意思?计算机唯一知道的时间是系统的,由DateTime.Now返回。你说的是白天或时区的变化吗?通常的方法是使用一些服务器时间-或只使用通常的域系统TBH:没有人会使用客户端工具协议登录时间-只让用户登录到你的域并阅读你的DC上的日志。你想看什么?我们不能使用通用时间吗??假设现在是下午2点30分,但有人来把它改为1点30分并登录。。。此时,his in time应为2.30,具体取决于数据库,但在SQL Server中,您可以向表中添加一个默认值为GETDATE或GETUTCDATE的列。