日期时间奇数
DateTime Oddness
应用程序 1. 设置请求 Header 具有 DateTime.Now 值 (11/11/2020 03:44:53)
应用 2. 读取请求 Header 并具有 DateTime 值(2020/11/11 上午 03:44:53)
DateTime.Parse("2020/11/11 上午 03:44:53") 在 App 2 中抛出异常。
DateTime为什么使用汉字,我们忽略了什么。我们还有其他示例,其中 App 2 DateTime 值具有韩文字符。这显然是基于最终用户及其浏览器的位置,但这如何决定服务器上的 DateTime 值?
App 1 是 .NET Framework 4.7.2(使用 class 库,即 .NETStandard 2.0 用于 HttpClient 对 App2 的请求)
应用程序 2 是 .NET Framework 4.7.2
感谢您的想法。
更新 1:
我们在美国的所有开发人员都可以在本地使用一切。目前,它似乎只发生在亚洲用户的生产环境中。
我们正在为某些文本使用资源文件,资源文件是否会自动更改 .NET 应用程序的工作方式以在服务器上为 DateTime 使用不同的 CultureInfo?
更新 2:
原码:
client.DefaultRequestHeaders.Add("xxx", DateTime.Now.AddSeconds(60).ToString());
我们尝试了以下方法来缓解这种情况:
client.DefaultRequestHeaders.Add("xxx", DateTime.Now.AddSeconds(60).ToString("G", CultureInfo.CreateSpecificCulture("en-US")));
这实际上是全球化,我们的 web.config 中有 <globalization requestEncoding="utf-8" responseEncoding="utf-8" uiCulture="en-US" culture="en-US" />
,但另一位开发人员在 <%@ Page %>
标记中明确地将其覆盖为“auto”。 Auto 使用最终用户浏览器来定义页面的文化。
<%@ Page Culture="auto" UICulture="auto" Language="C#"
MasterPageFile="~/MasterPage.master" AutoEventWireup="true"
CodeFile="Default.aspx.cs" Inherits="Default" %>
应用程序 1. 设置请求 Header 具有 DateTime.Now 值 (11/11/2020 03:44:53)
应用 2. 读取请求 Header 并具有 DateTime 值(2020/11/11 上午 03:44:53)
DateTime.Parse("2020/11/11 上午 03:44:53") 在 App 2 中抛出异常。
DateTime为什么使用汉字,我们忽略了什么。我们还有其他示例,其中 App 2 DateTime 值具有韩文字符。这显然是基于最终用户及其浏览器的位置,但这如何决定服务器上的 DateTime 值?
App 1 是 .NET Framework 4.7.2(使用 class 库,即 .NETStandard 2.0 用于 HttpClient 对 App2 的请求)
应用程序 2 是 .NET Framework 4.7.2
感谢您的想法。
更新 1:
我们在美国的所有开发人员都可以在本地使用一切。目前,它似乎只发生在亚洲用户的生产环境中。
我们正在为某些文本使用资源文件,资源文件是否会自动更改 .NET 应用程序的工作方式以在服务器上为 DateTime 使用不同的 CultureInfo?
更新 2:
原码:
client.DefaultRequestHeaders.Add("xxx", DateTime.Now.AddSeconds(60).ToString());
我们尝试了以下方法来缓解这种情况:
client.DefaultRequestHeaders.Add("xxx", DateTime.Now.AddSeconds(60).ToString("G", CultureInfo.CreateSpecificCulture("en-US")));
这实际上是全球化,我们的 web.config 中有 <globalization requestEncoding="utf-8" responseEncoding="utf-8" uiCulture="en-US" culture="en-US" />
,但另一位开发人员在 <%@ Page %>
标记中明确地将其覆盖为“auto”。 Auto 使用最终用户浏览器来定义页面的文化。
<%@ Page Culture="auto" UICulture="auto" Language="C#"
MasterPageFile="~/MasterPage.master" AutoEventWireup="true"
CodeFile="Default.aspx.cs" Inherits="Default" %>