2013-03-04 15 views
11

Używam konwertować jak:Convert.ToDateTime: Jak ustawić format

Convert.ToDateTime(value) 

ale muszę datę przekonwertować do formatu jak "mm/yy".
szukam czegoś takiego:

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

'DateTime' obiekty nie mają format określony. Możesz wypuścić DataTime w formacie, czy to masz na myśli? –

Odpowiedz

14

Powinieneś raczej użyć jednej DateTime.ParseExact lub DateTime.TryParseExact zamiast. Pozwalają określić konkretne formaty. Osobiście wolę Try -wersje, ponieważ myślę, że produkują ładniejszy kod dla przypadków błędów.

+1

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

+0

ale oczekuję {01/12/12} lub {12/12} – Refael

+1

@Refael, musisz przeczytać na [Ciągi niestandardowych dat i formatów czasu] (http://msdn.microsoft.com/en-us/library /8kb3ddd4.aspx). 'mm' to minuty,' MM' to lata. –

9

Jeśli value jest string w tym formacie i chcesz, aby przekształcić go w DateTime obiektu, można użyć DateTime.ParseExact metody statycznej:

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

Przykład:

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

Console.WriteLine(myDate.ToShortDateString()); 

Wynik:

2012-12-01 
+0

Próbuję tego: string value = "12/12"; format = "mm/rr"; następnie datetime.paeseExact (wartość, format, Cul ..) = return {01/01/2012 00:12:00}. czemu ? – Refael

+0

Więc 'DateTime.ParseExact (wartość," mm/rr ", CultureInfo.CurrentCulture);' powinien działać. – MarcinJuraszek

+0

Spodziewam się {01/12/12} lub {12/12} – Refael

1

DateTime nie ma formatu. format odnosi się tylko wtedy, gdy jesteś obracając DateTime na sznurku, co zdarza się niejawnie pokazać wartości na formularzu, strony internetowej itp

Spójrz na gdzie jesteś wyświetlania DateTime i ustawić format tam (lub popraw pytanie, jeśli potrzebujesz dodatkowych wskazówek).

0

Jak ten temat:

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

Gdzie Test będzie równa "12/2012"

Nadzieję, że to pomaga!

Przeczytaj HERE.

Powiązane problemy