2010-12-15 2 views
0

У меня есть два приложения (веб-сайт и настольные приложения), запущенное на одную машине, и использует следующее сериализовать DateTime значения объекта:.NET: настройки DateTime отличается на одную машине

string strDateTileFullFormat = Thread.CurrentThread.CurrentCulture 
    .GetConsoleFallbackUICulture().DateTimeFormat.FullDateTimePattern; 

string SummarySupporyUntil = string.Concat("until ", 
    TestLicenseExpiryDate.ToString(strDateTileFullFormat)); 

Одно приложения создать : "в субботу, 31 декабря 2011 12:00:00 AM", другой: "31 декабря 2011 12:00:00 AM"

Разница в том, что один использует установку страны "Канада", другой - "США".

Проблема в том, что мне нужна эта дата, чтобы быть подобной (на самом деле, я не знаю, какой вид правильный, возможно, первый).

Я смотрел файлы web/app.config, но ничего не вижу в настройках языка. Кроме того, у меня нет ручных изменений для CurrentCulture ...

Просьба сообщить. Благодаря!

+0

Имеет ли формат сериализации какой-либо стандартный формат для datetime (как, например, в случае с XML)? Если это так, неплохо было бы согласиться на этот формат. Если нет, рассмотрите возможность использования какого-либо другого стандарта вместо локального формата, например [ISO-8601] (http://en.wikipedia.org/wiki/ISO_8601). – 2010-12-15 21:43:32

ответ

0

После того, как вы решили, какая культура подходит вам лучше всего, вы можете использовать мощные функции форматирования System.DateTime как указано в док: DateTime.ToString Method с фиксированной культуры:

Например, с ванной-американской культуры (1033):

string SummarySupporyUntil = string.Concat("until ", 
    TestLicenseExpiryDate.ToString(strDateTileFullFormat, new Culture(1033))); 

даст тот же результат на каждой машине, что он будет запущен.

Смежные вопросы