2013-08-21 10 views
5

Il mio codice:Output Data DateTime ma non c'è tempo utilizzando solo CultureInfo

dateObject.Value.ToString(Model.Culture) 

dateObject è di tipo DateTime? mentre Model.Culture è di tipo CultureInfo.

L'(cultura dipendente) Uscita:

17/08/1960 00:00:00

vorrei rimuovere la parte 00:00:00 senza dover specificare qualsiasi provider di formato. Model.Culture dovrebbe contenere il formato per la data già da qualche altra parte (ma dove e come?) Mi piacerebbe specificare non in qualsiasi momento.

Stavo pensando di eseguire DateTime su un oggetto Date ma, sfortunatamente, non c'è nessun oggetto in C#. L'hardcoding diretto del formato della data comporterà l'impossibilità di creare un programma dinamico e dipendente dalla cultura.

+0

I don capisco 'CultureInfo' * è * il' IFormatProvider'. Tu o non vuoi passarne uno? –

+0

O intendevi "formato stringa" e non "fornitore formato"? –

+0

sì, intendevo solo il provider di formati ma NON la stringa di formato. – Saturnix

risposta

5

"senza dover specificare qualsiasi provider di formato" ... "hardcoding il formato della data direttamente comporterà l'impossibilità di creare un programma dinamico e dipendente dalla cultura. "

È possibile utilizzare l'overload che consente di fornire una stringa di formato e la cultura:

string result = dateObject.Value.ToString("d", Model.Culture); 

o si cambia la cultura, se ciò viene richiesto/possibile:

System.Threading.Thread.CurrentThread.CurrentCulture = Model.Culture; 
string result = dateObject.Value.ToShortDateString(); 
0

provare la seguente stringa usando la formattazione

dateObject.ToString("dd/MM/yyyy"); 

DATE FORMATS

+2

_ "senza specificare alcun fornitore di formato" _ –

0

Uso ToShortDateString utilizza la cultura thread corrente.

DateTime dateObject = DateTime.Now; 
string s = dateObject.ToShortDateString(); 
1

Forse siete alla ricerca di questo:

dateObject.Value.ToString("d", Model.Culture) 
+0

sì, esattamente - grazie! – Saturnix

Problemi correlati