2013-08-21 11 views
5

mojego kodu:Output data DateTime ale nie razem używając tylko CultureInfo

dateObject.Value.ToString(Model.Culture) 

dateObject jest typu DateTime? podczas Model.Culture jest typu CultureInfo.

The (kultura zależne) Wyjście:

17/08/1960 00:00:00

Chciałbym usunąć 00:00:00 część bez konieczności określania dowolnego dostawcy formatu. Model.Culture powinien zawierać format daty już w innym miejscu (ale gdzie i jak?) Chciałbym podać , a nie na wyjście w dowolnym momencie.

Myślałem, aby rzucić DateTime przez obiekt Date, ale niestety nie ma takiego obiektu w C#. Bezpośrednie kodowanie formatu daty spowoduje niemożność utworzenia dynamicznego i zależnego od kultury programu.

+0

I don 'nie rozumiem. "CultureInfo" * to * "IFormatProvider". Czy Ty lub nie chcesz go zdać? –

+0

Czy masz na myśli "ciąg formatu", a nie "dostawca formatu"? –

+0

tak, miałem na myśli tylko dostawcę formatu, ale nie ciąg formatu. – Saturnix

Odpowiedz

5

"bez konieczności określania dowolnego dostawcy formatu" ... „hardcoding format daty bezpośrednio spowoduje niemożność stworzyć program zależny od kultury i kultury ".

Można użyć przeciążenie, który umożliwia dostarczenie ciąg formatu i kultura:

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

lub zmienić kulturę, jeśli jest to pożądane/możliwe:

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

Spróbuj wykonać następujące czynności przy użyciu ciąg formatowanie

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

DATE FORMATS

+2

_ "bez określania jakiegokolwiek dostawcy formatu" _ –

0

Korzystając ToShortDateString wykorzystuje obecną kulturę gwintu.

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

Może szukasz to:

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

tak, dokładnie - dzięki! – Saturnix

Powiązane problemy