Проверка текущей культуры вашей программы, это может быть причиной проблемы у Вас с:
public override string ToString()
{
Console.WriteLine(System.Globalization.CultureInfo.CurrentCulture);
Console.WriteLine(System.Globalization.CultureInfo.CurrentUICulture);
string s = string.Format("name: {0} , Date: {1}, Salary: {2}, id {3}", name, startDate.ToShortDateString(), salary, id);
return s;
}
Вот еще некоторая информация об этом: http://msdn.microsoft.com/en-us/library/5hh873ya(v=vs.90).aspx
Кроме того, вы можете форматировать дата явно:
string s = string.Format(CultureInfo.InvariantCulture, "name: {0} , Date: {1:yyyy/MM/dd}, Salary: {2}, id {3}", name, startDate, salary, id);
CultureInfo.InvariantCulture
параметр не нужен, только если он не используется, то в некоторых случаях «/» символ будет заменен разделитель даты текущей культуры («-», например). Следует также отметить, что десятичный разделитель для инвариантной культуры является точкой, и нет разделителя тысяч. Если вы хотите форматировать номера (например, переменную «зарплата») по-другому (в соответствии с культурой, установленной в вашем приложении), вы должны форматировать дату отдельно:
string dateString = String.Format(CultureInfo.InvariantCulture, "{0:yyyy/MM/dd}", startDate);
string s = string.Format("name: {0} , Date: {1}, Salary: {2}, id {3}", name, dateString, salary, id);
Не могли бы вы показать латинские буквы , –
Какая у вас языковая система? –
Как копировать во время запуска программы? – user3590450