2009-09-11 15 views
11

Mam następujący kod w pliku związanym kodzie od strony ASP.NETC# DateTime toString („MM-dd-rrrr”) zwraca zabawny dzień ceni

txtStartDate.Text = DateTime.Today.ToString("MM-dd-yyyy"); 

Które oczekuję powrotu „09-11 -2009 ". Jednak po uruchomieniu strony na serwerze programistycznym w polu tekstowym pojawia się "09-00-2009". Nie widzę żadnego powodu, więc wyraźnie czegoś brakuje. Czy ktoś ma jakąś wskazówkę?

+0

samo działa dobrze dla mnie. Może twój zegar systemowy jest pomieszany? – ryber

+0

zaznacz to za pomocą ToString ("MM-ddd-rrrr"); i z ToString ("MM-dddd-rrrr"); i zobacz, co dostaniesz ... Jeśli nie zobaczysz ŻADNEJ zmiany, to twój ciąg formatu nie dociera na zwróconą stronę ... Jeśli zobaczysz 09-pon-2009 i 09-poniedziałek-2009, to twój zegar komputerowy jest off –

Odpowiedz

7

To format string powinien działać zgodnie z oczekiwaniami. Sprawdziłbym twoje pole tekstowe, aby upewnić się, że nie masz na sobie jakiejś maski (AJAX MaskedEditExtender?). Jeśli tak, a może maska ​​była niepoprawna, może zastąpić to, co wstawiłeś w polu tekstowym.

+0

Ma na sobie AJAX CalendarExtender, ale ciąg formatowania dla obu jest identyczny. –

+0

To było to - popełniłem błąd podczas kopiowania ciągu formatu dla przedłużacza. –

14

nie mogę myśleć dlaczego byłoby pokazać 00, ale jako losowej sugestii można spróbować:

... = DateTime.Today.ToString("MM-dd-yyyy", CultureInfo.InvariantCulture); 
0

Czy możesz sprawdzić Datetime, Now.ToString()?

+0

Tak, sprawdziłem to - ten sam wynik. –

4

spróbować czegoś takiego:

DateTime.Today.ToString("MM-dd-yyyy", CultureInfo.CreateSpecificCulture("en-US")) 
+0

Dzięki za tę dobrą wskazówkę. –

0

Zastosowanie .Teraz uzyskać czasu lokalnego

txtStartDate.Text = DateTime.Now.ToString("MM-dd-yyyy");