gpt4 book ai didi

C# 解析区域日期时间字符串

转载 作者:行者123 更新时间:2023-11-30 13:51:43 25 4
gpt4 key购买 nike

我正在尝试为一个项目制作一个小型应用程序,世界各地的客户都可以在其中使用。我遇到的问题是,后端是使用生成并上传到共享网络的 XML 文件设置的,在这些 XML 文件中,我存储了一个日期时间变量,表示特定任务何时开始和完成。该程序在特定加载间隔崩溃并出现格式异常,经过一些研究后我发现我需要设置区域日期时间解析器。

我的问题是如何转换 XML 文件中的时间,无论它是使用美国、澳大利亚还是英国区域设置,并让它使用客户端的本地设置。这是使用 VS C# 2005 和 .NET 3.5 框架完成的。

预先感谢您的帮助。

最佳答案

后端应该以标准格式编写。 XML 不应该只使用本地日期格式——疯狂的地方就在于此。 XML 的要点是成为计算机 而非人类 的交换格式。除非您正在格式化供人类使用的东西,否则您不应该使用本地变体。

因此,要么在任何地方都使用特定格式,在格式化时指定 CultureInfo.InvariantCulture,要么使用 dt.ToString("o") 或其他文化不变格式字符串。

如果您只是谈论一个时间点(即本地时间无关紧要,全局即时),您应该确保使用一致的时区,其中 UTC是显而易见的选择。例如,使用 DateTime.UtcNow 而不是 DateTime.Now

一旦您获得生成代码以执行明智的操作,使用它应该非常简单。

但是,如果您没有更改生成代码的奢侈,您可能不得不求助于将正确的 CultureInfo 传递到 DateTime。 TryParseExact。但是,这意味着您需要了解用于创建文件的区域性。如果文件是以文化敏感的方式生成的,而您不知道它们使用的是哪种文化,那么您基本上就完蛋了。例如,03/05/2010 可能表示 2010 年 3 月 5 日或 2010 年 5 月 3 日。没有更多信息,您无法决定使用哪个。

关于C# 解析区域日期时间字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4016123/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com