首页 > 后端开发 > C++ > 我如何在C#中正确解析特定于文化的日期字符串?

我如何在C#中正确解析特定于文化的日期字符串?

Susan Sarandon
发布: 2025-01-27 00:51:09
原创
216 人浏览过

How Can I Correctly Parse Culture-Specific Date Strings in C#?

使用特定文化格式将字符串解析为日期

问题陈述:

尝试使用 Parse 方法将表示为 "dd/MM/yyyy" 格式的日期字符串转换为 DateTime 对象,会导致异常,提示 "字符串未被识别为有效的 DateTime 格式"。

解释和解决方案:

Parse 方法在解析自定义格式的字符串时,会采用当前文化的格式设置。在本例中,该字符串表示欧洲日期格式,这与默认的美国格式不同。为解决此问题,请改用 ParseExact 方法。

ParseExact 方法接受三个参数:要解析的字符串、预期的格式和格式提供程序。格式提供程序指定要应用的特定于文化的格式规则。对于给定的示例:

<code class="language-csharp">this.Text = "22/11/2009";
DateTime date = DateTime.ParseExact(this.Text, "dd/MM/yyyy", null);</code>
登录后复制

null 作为格式提供程序会默认为当前文化的设置。或者,您可以指定特定的区域性,例如:

<code class="language-csharp">DateTime date = DateTime.ParseExact(this.Text, "dd/MM/yyyy", CultureInfo.GetCultureInfo("en-GB"));</code>
登录后复制

Parse 和 ParseExact 之间的区别:

  • Parse: 假设当前文化的格式设置,并支持有限的日期格式集。
  • ParseExact: 需要显式格式,并允许更大程度地灵活定制解析过程。

选择最佳答案的方面:

类型安全: 两个答案都提供类型安全,因为解析的结果是有效的 DateTime 对象。

性能: 两种方法的性能都差不多,因为它们都涉及将字符串解析为日期表示形式。

灵活性: ParseExact 通过允许自定义目标格式提供了更大的灵活性,使其更适合处理具有非标准格式或不同文化的日期。

以上是我如何在C#中正确解析特定于文化的日期字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板