Если вы сохраняете даты как истинные даты или значения даты и времени, ваше приложение будет возвращать необработанные двоичные данные, и оно не будет подвергнуто локализации, пока вы не создадите строковое представление значений даты. Я предполагаю, что вы смотрите на значения в отладчике или используете Console.WriteLine(theValue);
, который будет использовать текущую локаль. Всегда указывайте нужный формат и/или желаемую культуру при преобразовании нестроковых значений в строки.
Если вы храните даты в виде строк, вы всегда должны знать, какой формат был внесен в базу данных.
Предполагая, что даты хранятся в виде date
или datetime
: просто обрабатывать значения, как они есть, и не конвертировать их в строки, пока не нужно, чтобы показать их пользователю:
DateTime theValue = theReader.GetDateTime(fieldOrdinal);
var theValueAsText = theValue.ToString(CultureInfo.InvariantCulture);
var specificTextRepr = theValue.ToString("yyyy-MM-dd HH:mm:ss");
theValueAsText
переменной будет строковым представлением, которое не привязано к определенной культуре. specificTextRepr
будет вашим конкретным текстовым представлением.
Каков тип данных столбца, представляющего дату в MySQL? – dasblinkenlight
дата и дата-время (я использую их оба в нескольких разных полях) – user198003
Не могли бы вы представить пример кода, где вы продемонстрируете, о чем говорите?Я не уверен, что вы говорите об общении с MySQL или когда у вас есть время чтения в базе данных и хотите представить его пользователю. –