DateTime.Now/UtcNow默认区域性-客户端或服务器

本文关键字:客户端 服务器 区域性 默认 Now UtcNow DateTime | 更新日期: 2023-09-27 18:18:47

我知道如何指定文化,日期格式,时区等…

我的问题是当你只输入DateTime。Now或DateTime。在c#中,它是使用来自web服务器的文化,还是使用web浏览器的客户端语言/文化来发出请求?

令我非常惊讶的是,从我的测试中,它看起来像这个服务器代码DateTime。现在不使用web服务器的文化。但实际上是使用客户端Lang/Cult内部的web浏览器!?

无论如何在网上。指定日期时间。默认情况下,Now/UtcNow在我的web服务器的区域性中运行?

DateTime.Now/UtcNow默认区域性-客户端或服务器

我只希望在专门为客户端编写代码时应用客户端区域性。

DateTime.NowDateTime.UtcNow根本没有任何文化。只有当您将一个格式为字符串时,它才会使用区域性…使用哪个区域性取决于您如何格式化它。为了在代码中更清晰,只需显式指定区域性,例如

string text = DateTime.UtcNow.ToString(CultureInfo.InvariantCulture);

但是,DateTime.Now 使用system-local时区(即服务器上的时区)。这与用于格式化的区域性无关。

正如Jon所提到的,DateTime。UtcNow(或任何DateTime)没有文化——它本质上是日期的UInt64表示形式,所以它只是一个数字。当它被转换为要显示的字符串时(包括由调试器),这时将应用区域性。

要解决浏览器区域性设置如何影响服务器上的区域性设置的问题,是否有可能在您的web的globalization部分将culture设置为auto。配置或在页面指令(http://msdn.microsoft.com/en-us/library/vstudio/bz9tc508(v=vs.100).aspx)?

要有ASP。NET将UI区域性和区域性设置为当前浏览器设置中指定的第一种语言,将UI区域性和区域性设置为自动。