добавление кавычек вокруг даты и времени, c # - PullRequest
7 голосов
/ 24 мая 2011

Я сейчас использую следующую строку:

w.Write(DateTime.Now.ToString("MM/dd/yyyy,HH:mm:ss"));

и дает и выводит как:

05/23/2011,14:24:54

Мне нужны котировки вокруг даты и времени, выходные данные должны выглядеть следующим образом:

"05/23/2011","14:24:54"

есть мысли о том, как "разбить" дату и время и получить кавычки вокруг каждого куска?

Ответы [ 6 ]

5 голосов
/ 24 мая 2011

Попробуйте String.Format:

w.Write(String.Format("\"{0:MM/dd/yyyy}\",\"{0:HH:mm:ss}\"", DateTime.Now));
4 голосов
/ 24 мая 2011
DateTime.Now.ToString("\\\"MM/dd/yyyy\\\",\\\"HH:mm:ss\\\"")
2 голосов
/ 24 мая 2011

Это также поможет.

  string format = @"{0:\""MM/dd/yyyy\"",\""HH:mm:ss\""}" ;
  string s = string.Format(format,DateTime.Now) ;

, как это будет:

string format = @"{0:'\""'MM/dd/yyyy'\""','\""'HH:mm:ss'\""'}" ;
string s = string.Format(format,DateTime.Now) ;

и это

string format = @"{0:""\""""MM/dd/yyyy""\"""",""\""""HH:mm:ss""\""""}" ;
string s = string.Format(format,DateTime.Now) ;

Введение буквального двойногокавычка (") или апостроф (') в строках формата DateTime или Numeric вводят текст в тексте.Встроенная литеральная кавычка / апостроф должна быть сбалансированной - они действуют как встроенный строковый литерал в кавычках в строке формата.Чтобы получить двойную кавычку или апостроф, перед ней должна стоять обратная косая черта.

в форматируемых шпаргалках Джона Шихана отмечается эта ... особенность, но, насколько я могу судить, CLRдокументация (и всегда была) неверна WRT это: документы по пользовательским строкам даты / времени и числового формата просто говорят, что «[любой другой символ] копируется в строку результата без изменений».

0 голосов
/ 24 мая 2011

Я не уверен насчет типа w, но если он поддерживает стандартный набор Write перегрузок, должно работать следующее:

w.Write(@"""{0}""", DateTime.Now.ToString(@"MM/dd/yyyy"",""HH:mm:ss")));

Если нет, то вы можете сделать следующее

var msg = String.Format(@"""{0}""", DateTime.Now.ToString(@"MM/dd/yyyy"",""HH:mm:ss"))));
w.Write(msg);
0 голосов
/ 24 мая 2011
        string part1 = DateTime.Now.ToString("MM/dd/yyyy");
        string part2 = DateTime.Now.ToString("HH:mm:ss");
        Console.WriteLine("\""+part1+"\",\""+part2+"\"");

Работает просто отлично.Может быть, не самый лучший способ, хотя

0 голосов
/ 24 мая 2011

Следующая версия, хотя и очевидная, не будет работать:

w.Write(DateTime.Now.ToString("\"MM/dd/yyyy\",\"HH:mm:ss\"")); 

Будет выведено:

ММ / дд / гггг, ЧЧ: мм: сс

Так что не делай этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...