C#日期格式化
这是我遇到的一个问题很多次,我确信有一个我缺少的优雅解决方案.
我在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,还是会无效?我必须检查当前它没有搞砸任何其他东西,但它可能有效吗? 解决方法
您需要从源头解决问题:您将以模糊格式获取数据.如果您无法自行更改数据源,则应使用格式字符串或类似内容来装饰它们,以便您知道以某种方式处理整个数据源.
没有这些信息,您根本无法可靠地解析数据. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |