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
和DateTime.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区域性和区域性设置为自动。