2016-06-07 2 views
0

Попытка получить дату другой страны (часовой пояс), а затем отобразить ее. Я получаю время и дату. Просто нужно ДатаКак получить только часть даты из разных часовых поясов C#

var info = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time"); 
    var dateTime = TimeZoneInfo.ConvertTime(DateTime.Now.Date, info); 

    MessageBox.Show(dateTime.Date.ToString()); 

нужно 05/05/2015, но не время

+0

Нужно ли поддерживать глобализацию, это приложение используется во многих странах или только в одном месте. –

+0

Чтобы форматировать 'DateTime' в строку и получить разные форматы, проверьте документацию для' ToString', он принимает параметр, определяющий формат, или используйте '.ToShortDateString()'. –

+0

MessageBox.Show (dateTime.Date.ToString ("dd/MM/yyyy")); –

ответ

0

Вы можете получить date только с помощью ToShortDateString()

var info = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time"); 
var dateTime = TimeZoneInfo.ConvertTime(DateTime.Now.Date, info); 

MessageBox.Show(dateTime.Date.ToShortDateString()); 

Или вы можете напрямую использовать

MessageBox.Show(dateTime.ToShortDateString()); 
+0

Это работает очень хорошо, если текущая культура правильно установлена. –

+0

Вы должны заменить 'DateTime.Now.Date'' DateTime.UtcNow' – CodesInChaos

1

Вы можете напрямую использовать

MessageBox.Show(dateTime.ToShortDateString()); 

или же вы можете настроить его

MessageBox.Show(dateTime.ToString("dd/MM/yyyy")); 
0

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

var ci = new CultureInfo("en-US"); 

или var ci = CultureInfo.InvariantCulture; исследовать CultureInfo для получения дополнительной информации

Затем используйте метод ToString для получения вашей даты в определенном формате, см. Этот формат не включает час или минуты.

dateTime.ToString("MM/dd/yyyy", provider) 
Смежные вопросы