gpt4 book ai didi

C# 日期格式化

转载 作者:行者123 更新时间:2023-11-30 14:20:27 24 4
gpt4 key购买 nike

这个问题我遇到过很多次,我确信我缺少一个优雅的解决方案。

我在 C# 中有一些 DateTime 变量,它们是从各种 SQL 表/网站/Web 服务发送的,通常作为字符串发送。问题是其中一些来源设置为英语(美国),一些设置为英语(英国)。我无法控制其中的一些,因为我非常想将它们全部设置为一种文化或另一种文化。

到目前为止,我一直在使用 CultureInfo 对象转换它们以正确格式化它,例如:

CultureInfo ci = new CultureInfo("en-GB");
Convert.ToDateTime(inputDateTimeString, ci);

但是,我最近才发现,转换不知道原始 DateTime 的文化(正如我所说,它可能是美国或英国),因为它只是一个字符串。

如果是日期字符串,比如“06/15/2009”,这很好,因为转换会识别“15”不能是月份。然而,日期字符串“06/07/2009”将始终有效,但根据原始日期是美国还是英国,它可能指的是不同的日期和月份。

是否有一种更容易接受的方法来处理一般的 DateTime 以减少这些歧义?谢谢。

编辑:是的,所以似乎没有可靠的方法来始终转换为正确的格式,因为我的信息有限。

这些 DateTime 字符串的一个来源是我无法控制的 .dll。但是,我确实可以控制此 .dll 用于访问存储信息的数据库的 SQL 登录。如果我将此登录的语言设置更改为英式英语(目前是美式英语),它会以该格式检索 DateTime 吗,还是没有效果?当然,我必须检查它没有搞砸任何其他事情,但它可以工作吗?

最佳答案

您需要从源头上解决问题:您获得的数据格式不明确。如果您无法更改数据源本身,您应该用格式字符串或类似的东西修饰它们,以便您知道以一种或另一种方式处理整个数据源。

如果没有这些信息,您根本无法可靠地解析数据。

关于C# 日期格式化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1294219/

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