На локальной машине функция DateTime.Now.ToString() дает результат
27.06.2016 15:27:55
, а при развертывании на сервер
6/28/2016 1:14:55 AM
Как привести второй вариант в первому? Желательно без разбора строк.
Ответ
DateTime.Now.ToString(CultureInfo.GetCultureInfo("ru-ru"))
Класс CultureInfo находится в пространстве имен System.Globalization
Если получение строкового представления даты вызывается многократно в разных местах, и каждый раз явно указывать язык неудобно, то можно установить локаль в рамках всего треда:
Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("ru-ru");
Если сервер находится в другом часовом поясе, а дату нужно получить, например, по московскому времени, то воспользуйтесь классом TimeZoneInfo
static string GetCurrentDateTime()
{
var tz = TimeZoneInfo.FindSystemTimeZoneById("Russian Standard Time");
return TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, tz)
.ToString(CultureInfo.GetCultureInfo("ru-ru"));
}
Список идентификаторов часовых поясов можно получить, вызвав TimeZoneInfo.GetSystemTimeZones()
Комментариев нет:
Отправить комментарий