DateTime.TryParse 在 Azure Web 应用程序中失败

Posted

技术标签:

【中文标题】DateTime.TryParse 在 Azure Web 应用程序中失败【英文标题】:DateTime.TryParse failing in Azure Web App 【发布时间】:2016-07-22 05:50:05 【问题描述】:

我的开发机器的文化是 en-NZ,我的时区设置为新西兰时间 (UTC+12:00)。位于美国西部的服务器上的 DateTime.TryParse 失败。

    如何检查和更改服务器上我的网络应用程序的文化和时间设置?

    我可以在服务器上以交互方式运行 Powershell 或 C# 代码并查看输出,只是为了测试一些东西,比如说

    Console.WriteLine(CultureInfo.CurrentCulture.ToString());
    

如果您认为我的处理方式有误,欢迎提出任何其他想法。

【问题讨论】:

您是否使用 culter 参数测试了 datetime.tryparse?像这样 DateTime.TryParse(dateString,culture, styles,out dateResult) 【参考方案1】:

我只是用 Kudu 来回答这个问题。 Kudu 太棒了。

我只是认为“Kudu 是 Azure 网站中 git 部署背后的引擎。它也可以在 Azure 之外运行。”

但是转到https://[mysite].scm.azurewebsites.net/。这实际上是 Kudu 的 Web 界面,可以告诉您有关环境的所有信息。您甚至可以运行 powershell 和 cmd。看看吧。

通过将其放入 web.config 来解决问题:

<configuration>
    <system.web>
        <globalization culture="en-NZ" uiCulture="en-NZ"  />
    </system.web>
</configuration>

顺便说一句,使用 powershell,服务器上的文化是 en-US(美国西部数据中心)。时间是UTC。我不需要更改时间,但这里是如何做到这一点:

https://blogs.msdn.microsoft.com/tomholl/2015/04/06/changing-the-server-time-zone-on-azure-web-apps/。

基本上,“您需要做的就是添加一个名为 WEBSITE_TIME_ZONE 的应用程序设置(通过门户或管理 API),并将其设置为在 HKLM\Software\Microsoft\ 下的 Windows 注册表中定义的时区名称Windows Nt\CurrentVersion\Time Zones\(例如,“澳大利亚东部标准时间”)。”

【讨论】:

答案是什么? @JeroenHeier 我现在已经完全回答了。

以上是关于DateTime.TryParse 在 Azure Web 应用程序中失败的主要内容,如果未能解决你的问题,请参考以下文章

如何用c#将DateTime 类型与string 类型转换?

如何在 C# 中将日期字符串转换为 DateTime 对象? [复制]

将来自不同文化的 DateTime 字符串传递给服务

C# 使用DateTime.TryParseExact将自定义日期类型转换成日期

更改数据,ExecuteNonQuery()

在mysql中如何将时间的格式设置成yyyy-mm?