c# - 将 datetime 解析为具有英语文化的月日时,仍将其解析为土耳其语

标签 c# string datetime string-formatting culture

这是代码。我仍然得到不正确的结果

string srRegisterDate = "25.07.2009 00:00:00"
CultureInfo culture = new CultureInfo("en-US");
srRegisterDate = String.Format("{0:dddd, MMMM d, yyyy}", Convert.ToDateTime(srRegisterDate), culture);

结果是 Cumartesi, Temmuz 25, 2009

应该是 2009 年 7 月 25 日,星期六

我该如何修复这个错误?

C#.net v4.5.2

最佳答案

Convert.ToDateTime(srRegisterDate) 仍然 使用您的 CurrentCulture它看起来像基于日期和月份名称的 tr-TRCumartesi - Temmuz

String.Format 中,您的区域性将被忽略,因为您将它用作第三个参数作为参数,但您从未使用过它。

您的代码称为 Format(string format, object arg0, object arg1)重载。但是您从不使用 arg1。这种重载并不认为这是一种文化。它认为这是您要格式化的另一个参数。

String.Format 有一个重载,将 IFormatProvider 作为第一个 参数。

例如;

srRegisterDate = String.Format(culture, "{0:dddd, MMMM d, yyyy}", Convert.ToDateTime(srRegisterDate));

但最常见的方式(我总是喜欢)得到你想要的结果是使用 .ToString() 方法,比如;

srRegisterDate = Convert.ToDateTime(srRegisterDate).ToString("dddd, MMMM d, yyyy", culture);

关于c# - 将 datetime 解析为具有英语文化的月日时,仍将其解析为土耳其语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30261275/

相关文章:

c# - Linq 获取所有实现接口(interface)的对象

c# - 为什么查询字符串参数包含两次 - asp.net boolean

string - 如何在 Golang 中为字符串添加单引号?

php - 如何检查电子邮件域是否是 php 中的 gmail,然后删除 "@gmail.*"?

C# 反射 : Emit DateTime Property Value

javascript - 将日期时间设置为 Jquery 日期时间选择器

c# - 逆向已知的 XOR 加密算法

c# - MonoTouch 相当于 transform.b 和 transform.a?

在C中将字符串的尾部复制到另一个数组中,无引用无指针

sql - 填充 SQL 查询结果集中缺失的(时间段)行