首页 > 解决方案 > TryParseExact 来自带有月份全名的法国日期

问题描述

我需要解析日期,例如

7 août 2008(2008 年 8 月 7 日)

我试过这个:

var french = CultureInfo.GetCultureInfo("fr-FR");
DateTime.TryParseExact(input, "d MMMM yyyy", french, DateTimeStyles.None, out parsed_date);

返回 false

然而,这段代码

var french = CultureInfo.GetCultureInfo("fr-FR");
var test = new DateTime(2008, 8, 7);
Console.WriteLine(test.ToString("d MMMM yyyy", french));

输出

7 août 2008

正如预期的那样。

我在这里做错了什么?

标签: c#datetimeglobalization

解决方案


TryParseExact实际上是精确的。

就我而言,我需要使用忽略空格(可能无法打印)

var styles = DateTimeStyles.AllowInnerWhite | DateTimeStyles.AllowLeadingWhite | DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AllowTrailingWhite;
var french = CultureInfo.GetCultureInfo("fr-FR");
DateTime.TryParseExact(input, "d MMMM yyyy", french, DateTimeStyles.None, out parsed_date);

得到预期的结果。


推荐阅读