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()不起作用

这是因为:

ToLongDateString方法返回的字符串是区域性敏感的

,如这里所述。

为了修复它,你必须指定CurrentTreadCurrentCulture属性。

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.