2014-12-15 2 views
2

Можно ли заставить объект DateTime использовать другой язык? Я хочу заполнить объект DateTime британским DateTime, но отформатирован как US.MVC 4 - Force DateTime

Я попытался следующие:

DateTime ukDateTimeFormat = DateTime.Parse("10/26/2009 06:47", CultureInfo.GetCultureInfo("en-us")); 
DateTime usDateTimeFormat = DateTime.Parse("26/10/2009 06:47", CultureInfo.GetCultureInfo("en-gb")); 

string strDate = DateTime.Now.ToString(CultureInfo.InvariantCulture); 
string[] dateString = strDate.Split('/'); 
DateTime enterDate = DateTime.Parse(dateString[0] + "/" + dateString[1] + "/" + dateString[2], CultureInfo.GetCultureInfo("en-us")); 

Ничто не работает, я всегда в конечном итоге с Великобритании отформатированный даты.

Любая помощь будет высоко ценится :-)

+3

'DateTime's просто хранить время; у них нет понятия формата. – SLaks

+2

И у него нет _any_ культуры. –

ответ

3

DateTime объект не имеет внутренний формат строки как таковой - ваша дата хранится в виде даты и отформатированные на выходе. Вы можете заполнить по своему усмотрению, однако при выводе его, вам необходимо указать свой формат, например:

string formattedDate = ukDateFormat.ToString("MM/dd/yyyy HH:mm"); 
+1

Использовать 'IFormatProvider' как второй параметр, потому что этот _might_ генерирует разные результаты из-за спецификатора формата'/'. –

4

Похоже, вы путать между представляя дата-время и форматирования в дата-время.

DateTime не содержит никакого формата, он представляет только фактическое время. Поэтому вопрос о формате даты/времени в США и Великобритании не имеет смысла.

Если вы хотите отобразить время в другом формате, это не DateTime, это string. Вы можете использовать различные перегрузки DateTime.ToString(...), чтобы добиться различного форматирования в виде строки. Есть несколько встроенных форматов, и вы можете указать локаль.

+0

Мы запрашиваем третью сторону передать объект DateTime службе SOAP и должны быть отформатированы как дата DateTime, мы не можем передать строку. – iggyweb

+3

Это требование бессмысленно. DateTime может иметь часовой пояс, он не может иметь формат. –

+0

@iggyweb - в вызове мыльной службе (который будет передавать XML), это определенно будет строкой в ​​какой-то момент ... – Paddy

0

Для форматирования даты для локали, используйте этот код:

string formattedDate = ukDateFormat.ToString(System.Globalization.CultureInfo.CreateSpecificCulture("en-us")) 
Смежные вопросы