2015-06-10 3 views
0

Не знаете, как и почему, но используя DateTime.Today в C#, возвращает мне значение даты 01/01/2000. Есть идеи?DateTime.Today дает неправильное значение 01/01/2000

Код:

DateTime thisDay = DateTime.Today; 

Console.Writeline() на thisDay.ToString() показывает "01/01/2000 00:00:00".

часы система показывает правильную дату, 10 июня, 2015.

+5

Что говорят ваши системные часы? –

+0

Попробуйте проверить системное время – KaareZ

+0

Каковы ваши системные часы? У меня были перезагрузки часов компьютера некоторыми приспешниками в колледже, это не непогрешимо. –

ответ

1

Вполне вероятно, что параметры текущей культуры в формат даты и времени были изменены где-то в коде, или с помощью конфигурации.

Например:

var culture = (CultureInfo)CultureInfo.CurrentCulture.Clone(); 
culture.DateTimeFormat.ShortDatePattern = "01/01/2000"; 
Thread.CurrentThread.CurrentCulture = culture; 

Console.WriteLine(DateTime.Today); 

Приведенные выше код всегда будет распечатать "01/01/2000" на дату, так как настройки даты, как предполагается использовать спецификатор формата, такие как "MM/dd/yyyy" вместо цифр.

0

Спасибо за ввод всех. Я определил источник своей боли. Это принтер Intermec PM43, с которого выполняется этот код. Я создаю код, отправляю .exe на принтер, и он работает там. Поэтому я просмотрел конфигурацию системных настроек на принтере и, конечно же, его дата была 1 января 2000 года. Поэтому я продолжаю устанавливать текущую дату и надеяться, что принтер ее помнит.

Совет для меня был, когда я удалил весь код, специфичный для Intermec, и просто запустил код на компьютере в режиме отладки. DateTime.Today вернула правильную дату, и она ударила меня: это зависит от того, где работает код. Мой плохой, спасибо всем.