2013-03-04 12 views
11

Io uso convertire come:Convert.ToDateTime: come impostare formato

Convert.ToDateTime(value) 

ma ho bisogno data di convertire in formato tipo "mm/aa".
Sto cercando qualcosa di simile:

var format = "mm/yy"; 
Convert.ToDateTime(value, format) 
+2

'DateTime' oggetti non hanno un formato definito. È possibile emettere il DataTime in un formato, è questo che intendi? –

risposta

14

Probabilmente si dovrebbe utilizzare DateTime.ParseExact o DateTime.TryParseExact invece. Ti consentono di specificare formati specifici. Personalmente preferisco le versioni Try poiché penso che producano un codice migliore per i casi di errore.

+1

datetime.paeseExact ("12/12", "mm/yy", Cul ..) = {01/01/2012 00:12:00}; – Refael

+0

ma mi aspetto {01/12/12} o {12/12} – Refael

+1

@Refael è necessario leggere su [Custom Format and Time Format Strings] (http://msdn.microsoft.com/en-us/library /8kb3ddd4.aspx). 'mm' è minuti,' MM' è anni. –

9

Se value è un string in quel formato e si desidera convertire in un oggetto DateTime, è possibile utilizzare DateTime.ParseExact metodo statico:

DateTime.ParseExact(value, format, CultureInfo.CurrentCulture); 

Esempio:

string value = "12/12"; 
var myDate = DateTime.ParseExact(value, "MM/yy", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None); 

Console.WriteLine(myDate.ToShortDateString()); 

Risultato:

2012-12-01 
+0

provo questo: string value = "12/12"; format = "mm/yy"; then datetime.paeseExact (value, format, Cul ..) = return {01/01/2012 00:12:00}. perché ? – Refael

+0

Quindi 'DateTime.ParseExact (valore," mm/yy ", CultureInfo.CurrentCulture);' dovrebbe funzionare. – MarcinJuraszek

+0

mi aspetto di {01/12/12} o {12/12} – Refael

1

DateTime non ha un formato. il formato si applica solo quando stai girando un DateTime in una stringa, che avviene implicitamente si mostra il valore in un modulo, pagina web, ecc

Guardate dove si sta visualizzando il DateTime e impostare il formato lì (o modifica la tua domanda se hai bisogno di ulteriori indicazioni).

0

ne dite di questo:

string test = "01-12-12"; 
    try{ 
     DateTime dateTime = DateTime.Parse(test); 
     test = dateTime.ToString("dd/yyyy"); 
    } 
    catch (FormatException exc) 
    { 
     MessageBox.Show(exc.Message); 
    } 

Dove test sarà uguale a "12/2012"

Speranza che aiuta!

Leggere HERE.

Problemi correlati