加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C#日期格式化

发布时间:2020-12-16 01:31:54 所属栏目:百科 来源:网络整理
导读:这是我遇到的一个问题很多次,我确信有一个我缺少的优雅解决方案. 我在c#中有一些DateTime变量,我从各种SQL表/网站/ Web服务发送,通常以字符串形式发送.问题是这些来源中的一些被设置为英语(美国),一些被设置为英语(英国).我无法控制其中的一些,因为我非常希
这是我遇到的一个问题很多次,我确信有一个我缺少的优雅解决方案.

我在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,还是会无效?我必须检查当前它没有搞砸任何其他东西,但它可能有效吗?

解决方法

您需要从源头解决问题:您将以模糊格式获取数据.如果您无法自行更改数据源,则应使用格式字符串或类似内容来装饰它们,以便您知道以某种方式处理整个数据源.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读