2011-05-23 2 views
7

J'utilise actuellement la ligne suivante:ajoutant des guillemets autour de la date et l'heure, C#

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

et il donne et de sortie comme:

05/23/2011,14:24:54 

Ce que je besoin est des citations autour de la date et l'heure , la sortie devrait ressembler à ceci:

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

des idées sur la façon de datetime « briser » et obtenir des citations autour de chaque tarte ce?

Répondre

5

Essayez String.Format:

w.Write(String.Format("\"{0:MM/dd/yyyy}\",\"{0:HH:mm:ss}\"", DateTime.Now)); 
+0

C'est ça! Merci Monsieur! – FluxEngine

0

La version suivante, si évidente, ne fonctionnera pas:

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

Affichera:

MM/jj/aaaa, HH: mm: ss

Alors Ne fais pas ça.

+0

C'était aussi ma première estimation, mais cela ne semble pas fonctionner. – ashelvey

+0

Je viens de l'essayer et la sortie est; MM/jj/aaaa, HH: mm: ss – FluxEngine

+0

@ashelvey @ user630581 - J'ai mis à jour ma réponse avec cette information. –

4
DateTime.Now.ToString("\\\"MM/dd/yyyy\\\",\\\"HH:mm:ss\\\"") 
0
 string part1 = DateTime.Now.ToString("MM/dd/yyyy"); 
     string part2 = DateTime.Now.ToString("HH:mm:ss"); 
     Console.WriteLine("\""+part1+"\",\""+part2+"\""); 

fonctionne très bien. Peut ne pas être le meilleur moyen si

0

Je ne suis pas sûr du type de w mais s'il prend en charge l'ensemble standard de surcharges Write, les éléments suivants devraient fonctionner.

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

Sinon, vous pouvez effectuer les opérations suivantes

var msg = String.Format(@"""{0}""", DateTime.Now.ToString(@"MM/dd/yyyy"",""HH:mm:ss")))); 
w.Write(msg); 
+0

Manquant les guillemets autour de la virgule, conformément à l'OP. –

+0

@Forfait, merci d'avoir manqué cette partie du Q. Mise à jour – JaredPar

2

Cela fera l'affaire aussi.

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

tout comme ceci:

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

et ce

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

L'introduction d'une double citation littérale (") ou apostrophe (') dans une des chaînes de format DateTime ou numérique introduit texte littéral. La citation/apostrophe littérale incorporée doit être équilibrée — ils agissent comme un littéral de chaîne entre guillemets incorporé dans la chaîne de format. Pour obtenir un double guillemet ou une apostrophe, il doit être précédé d'un antislash.

John Sheehan's formatting cheatsheetsJohn Sheehan's formatting cheatsheets prend note de cette ... caractéristique, mais pour autant que je sache, la documentation CLR est (et a toujours été) incorrecte WRT ceci: les docs sur les chaînes personnalisées date/heure et format numérique disent juste que " [tout autre caractère] est copié dans la chaîne de résultats sans changement. ".

Questions connexes