如何在不使用系统时间的情况下获得c#中的当前本地DateTime

本文关键字:DateTime 情况下 时间 系统 | 更新日期: 2023-09-27 18:29:03

即使用户将系统DateTime更改为其他内容,我也会尝试获取实际的当前本地DateTime(在客户端)。

我用过这个:

DateTime localDateTime = DateTime.Now;

但它会查看系统时间,所以如果用户更改系统DateTime,我将无法获得实际的DateTime。

我也考虑过获取utc时间并将其转换,但这也考虑了系统时间来计算utc时间。

如果无法做到这一点,有没有办法获得Web服务器的DateTime?

这样做的原因是记录某些记录何时更新/创建,我试图避免用户可以通过更改系统时间来操纵这一时间的情况。

如有任何帮助,我们将不胜感激。

如何在不使用系统时间的情况下获得c#中的当前本地DateTime

由于它是WEB应用程序,所有后端代码都将托管在您的服务器中,这意味着您可以完全控制那里的时区。

您不需要也不应该关心客户端传递的时区,因为您永远不能认为它是可靠的。

另一件事是,如果你不小心,你的网络服务器的时区可能与数据库服务器使用的时区不同(我以前也遇到过)。因此,以下是最佳实践

最佳实践:在任何地方使用UTC时区,并在需要时转换为本地时区。

如果你想在客户端花时间,你根本不需要使用C#。您拥有的代码只能在web服务器上运行。ASP.Net MVC中没有任何C#代码在客户端计算机上运行。

要在客户端获得时间,您必须从javascript或第三方插件获得时间。在任何一种情况下,您仍然可能依赖于通过HTTP协议提交的数据,这很容易在浏览器外进行操作。如果客户真的想骗你,你无能为力