2009-09-11 4 views
11

Ho il seguente codice nel file codebehind di una pagina ASP.NetC# DateTime ToString ("MM-GG-AAAA") restituisce i valori divertente giorno

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

che mi aspetto di tornare "09-11 -2009" . Tuttavia, quando eseguo la pagina sul server di sviluppo, vedo "09-00-2009" nella casella di testo. Non riesco a vedere alcuna ragione per questo, quindi mi manca chiaramente qualcosa. Qualcuno ha un indizio?

+0

stessa cosa funziona bene per me. Forse il tuo orologio di sistema è incasinato? – ryber

+0

controllalo con ToString ("MM-gg-aaaa"); e con ToString ("MM-gg-gg-aaaa"); e vedi cosa ottieni ... Se vedi NESSUNA modifica, allora la stringa di formato yr non arriva alla pagina restituita in qualche modo ... Se vedi 09-Mon-2009 e 09-Monday-2009, allora l'orologio del tuo computer è off –

risposta

7

Che format string dovrebbe funzionare come previsto. Controllerei la tua casella di testo per assicurarti di non avere una sorta di maschera (AJAX MaskedEditExtender?) Su di essa. Se l'hai fatto, e forse la maschera è sbagliata, potrebbe sovrascrivere quello che stavi inserendo nella casella di testo.

+0

Dispone di AJAX CalendarExtender, ma la stringa di formato per entrambi è identica. –

+0

Ecco, ho commesso un errore nel copiare la stringa di formato per l'extender. –

14

non riesco a pensare perché sarebbe mostrare 00, ma come un suggerimento a caso si potrebbe provare:

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

è possibile controllare Data/ora, Ora.ToString()?

+0

Sì, l'ho controllato, lo stesso risultato. –

4

provare qualcosa di simile:

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

Grazie per questo buon consiglio. –

0

Usa .Ora per ottenere l'ora locale

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