解析法国日期

Edw*_*ard 4 c# culture datetime parsing

我试图将一个法国日期解析为一个目前DateTime没有运气的对象.有没有办法做到这一点?

String foo = "mar, 20 avr 2010 09:00:00 -0500";
Run Code Online (Sandbox Code Playgroud)

我已经尝试过解析不同的文化并改变线程的文化.

System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-CA",true);
CultureInfo culture = new CultureInfo("fr-CA",true);
DateTime.Parse(foo,culture,DateTimeStyles.AdjustToUniversal);
Run Code Online (Sandbox Code Playgroud)

dtb*_*dtb 6

您只能解析(使用Parse或ParseExact)格式化DateTime时可以创建的内容.

您的示例输入最接近的自定义格式说明符可能是这样的:

ddd,dd MMM yyyy HH':​​'mm':'ss zzz

码:

CultureInfo culture = new CultureInfo("fr-CA", true);

var f = new DateTimeOffset(2010, 04, 20, 09, 00, 00, TimeSpan.FromHours(-5))
            .ToString("ddd, dd MMM yyyy HH':'mm':'ss zzz", culture);
Run Code Online (Sandbox Code Playgroud)

这会产生以下结果:

"mar., 20 avr. 2010 09:00:00 -05:00"
Run Code Online (Sandbox Code Playgroud)

如您所见,短日和短月说明符(dddMMM).在名称后添加一个,时区说明符(zzz)插入一个:.

我相信不可能欺骗ToString生成所需的输出,因此也不能用ParseExact解析结果.我猜你必须使用普通的旧字符串操作自己解析字符串.