ToLongDateString()不起作用
本文关键字:不起作用 ToLongDateString | 更新日期: 2023-09-27 18:12:54
string[] splitDate = DateOfBirth.ToLongDateString().Split(new char[] { ',', ' ' });
foreach (string s in splitDate)
{
Console.Write(s);
}
对于像"15/08/1991"
这样的输入,它在我的机器上输出"Thursday August 15 1991"
,但在另一台机器上输出"August 15 1991"
。
代码在我的系统上运行良好,但由于上述原因在另一个系统上失败。
这是因为:
ToLongDateString方法返回的字符串是区域性敏感的
,如这里所述。
为了修复它,你必须指定CurrentTread
的CurrentCulture
属性。
Thread.CurrentThread.CurrentCulture = new CultureInfo("...");
但是,这会影响代码中依赖于文化的所有内容。
这里是您可以使用的预定义区域性列表。
sononer的评论是正确的。请查看有关如何使用CurrentCulture设置区域性的文档。然而,从你的代码看来,你只需要一个包含日期的字符串,你可以很容易地用DateOfBirth做到这一点。天,DateOfBirth。月,DateOfBirth。DayOfWeek等。
这是由于窗口的区域性和区域设置。如果您想这样做,您可以指定要使用的区域性作为参数。
DateTime.Now.ToString(new CultureInfo("en-GB"));
你也可以指定你的日期格式作为第二个参数:)
这是一个旧的线程,但这将有助于一些人仍在搜索:
var CurrentCulture = Thread.CurrentThread.CurrentCulture; //Store the current culture
Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("el-GR"); //Set a new culture
String FullString = MyDate.ToLongDateString(); //Get your string
Thread.CurrentThread.CurrentCulture = CurrentCulture; //Restore the environment.