2015-06-06 3 views
0

У меня есть приложение, которое должно показывать даты на китайском языке. В настоящее время у меня есть следующие:Специфичный формат даты в C#

string formattedDate = ""; 
var dateTime = DateTime.MinValue; 
if (DateTime.TryParse("06/01/2015", out dateTime)) 
{ 
    formattedDate = dateTime.ToShortDateString(); 
} 

Сейчас formattedDate получает значение 1/6/2015, когда моя культура установлена ​​на «ZH-HK». Тем не менее, мне очень хотелось бы выглядеть так: 2015年06月01日 Как это сделать на C#?

+0

Что вы хотите 'dateTime.ToLongDateString()' 'не dateTime.ToShortDateString();' – imGreg

ответ

1

Вы можете использовать собственный формат:

formattedDate = dateTime.ToString("yyyy'年'MM'月'dd'日'"); 
+0

Если вы не возражаете, я спрошу, какие одиночные кавычки в строке для? Ваш пример, похоже, работает как с ними, так и без них. И я этого раньше не видел. Я бы не прочь узнать что-то новое. :) – sstan

+1

@sstan: апострофы предназначены для буквальных значений в формате. Они необходимы, если вы хотите поместить что-то в формат, который иначе интерпретируется как код форматирования. Я помещал их вокруг китайских персонажей, поскольку я не был уверен, что они не будут мешать кодам формата. – Guffa

0

Используйте DateTimeFormatInfo. Решение Guffa - это жесткое кодирование китайских иероглифов.

  DateTimeFormatInfo info = new CultureInfo("zh-HK", false).DateTimeFormat; 

      string formattedDate = ""; 
      var dateTime = DateTime.MinValue; 
      if (DateTime.TryParse("06/01/2015", out dateTime)) 
      { 
       formattedDate = dateTime.ToString(info.LongDatePattern); 
      }​ 
1
string formattedDate = ""; 
var dateTime = DateTime.MinValue; 
if (DateTime.TryParse("06/01/2015", out dateTime)) 
{ 
    formattedDate = dateTime.ToLongDateString(); // switch to "ToLongDateString" 
} 


//short date format = 1/6/2015 
//long date format = 2015年06月01日 
Смежные вопросы