Фог дал правильную причину, но я бы предложил неправильный обходной путь. Если вы всегда хотите отформатировать дату / время, как если бы вы были в определенной культуре (вероятно, инвариантная культура ), тогда вы можете сделать это:
string formattedDate = DateTime.Today.ToString("dd/MM/yyyy",
CultureInfo.InvariantCulture);
Я считаю, что это чище, чем заставлять некоторые части формата в неизменную форму, оставляя другие (числа) на уровне культуры. Например, рассмотрим это:
using System;
using System.Globalization;
using System.Threading;
class Test
{
static void Main()
{
CultureInfo ci = new CultureInfo("ar-SA");
Thread.CurrentThread.CurrentCulture = ci;
string formattedDate = DateTime.Today.ToString("dd/MM/yyyy");
Console.WriteLine(formattedDate);
}
}
Сегодня печатается «06/04/1433» - что подходит для исламского календаря, но, вероятно, не , что вы ожидали.