Я столкнулся с очень странной проблемой, когда стандартный формат даты «месяц/день», как указано в https://msdn.microsoft.com/en-us/library/az4se3k1(v=vs.110).aspx, оказывает по-другому на моей локальной машине, чем на моей лазурной облачных сервисов и веб-сайтов.Формат месяца месяца/дня, отличного от localhost
Культура в этом случае, которая отличается от другого, является «en-AU». На дату 2017-05-04
его следует отразить как 4 May
, а на моем компьютере это делает точно. На нашем веб-сайте (облачный сервис azure) и нашем API (лазурный веб-сайт) он отображается как May 4
. Странная часть состоит в том, что если я использую «шаблон коротких дат», он отображает 04/05/2017
как на лазурном, так и на локальном. Таким образом, это, по-видимому, характерно только для шаблона «месяц/день».
Я попытался установить
var culture = new CultureInfo("en-AU");
Thread.CurrentThread.CurrentCulture = culture;
Thread.CurrentThread.CurrentUICulture = culture;
и код форматирования
string.Format(new CultureInfo("en-AU"), "Until {0:M} {0:yyyy}", endDate);
мне интересно, если его возможно, что версия некоторого определения культуры отличается в лазури, чем на моя локальная машина? Насколько мне известно, они оба работают .net 4.5. Я добавил логические операторы в код, поэтому я могу подтвердить, что культура правильно установлена на строке, в которой выполняется код, но по какой-то причине он просто выводит другое значение в Azure, чем локально.
Я вижу похожие несоответствия и в других областях. Например, для южноафриканской валюты на моей локальной машине я получаю 'R450.00', но на веб-сервере в Azure' R 450.00' (обратите внимание на добавленное пространство). Изменения очень тонкие, но в библиотеке Azure и в библиотеке есть что-то другое, и я не знаю, как ее отслеживать. – Jorin