У меня очень странная проблема. Я пишу в файл CSV, как это:
sw.WriteLine($"{posting.publishedOn},{posting.ExpirationDate}");
Дата публикации - это объект DateTime
, а Срок действия - объект DateTime?
.
Однако, когда я запускаю это на своем производственном сервере в Германии, это очень непоследовательно в отношении того, какой формат даты он печатает. Иногда у меня будут даты, отформатированные так (европейский стиль):
Posting Date,Expiration Date
06.08.2018 11:49,08.07.2018 11:49
И иногда у меня будут даты, отформатированные так (стиль США):
Posting Date,Expiration Date
8/15/2018 7:56:12 AM,10/14/2018 7:56:12 AM
Дата публикации и дата окончания срока действия являются полностью отдельными объектами .NET, но каждая строка будет согласованной, т. Е. Если один столбец будет в европейском формате, другой будет также.
Я пытался настроить культуру так:
CultureInfo.DefaultThreadCurrentCulture = new CultureInfo("en-US");
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
но, похоже, это не имело значения.
Это происходит, когда я запускаю консольное приложение на моем сервере в Германии.
Что может быть причиной этого? Есть ли способ исправить это без необходимости явно вызывать ToString
с форматом каждый раз, когда я пишу дату?