2013-01-16 12 views
17

Wygląda na to, że miliony pytań dotyczy konwersji ciągu na datę, ale nie na odwrót. Kiedy konwertuję obiekt Date na ciąg znaków przy użyciu mydate.toString, otrzymuję ciąg znaków w formacie 16/01/2013 13:00:00.Jak przekonwertować datę na sformatowany ciąg w VB.net?

Ale to, czego naprawdę chcę, to 2013-01-16 13:00:00. Nie widzę żadnych funkcji na obiekcie Date, który to zrobi dla mnie, czy muszę zamiast tego użyć wyrażenia regularnego lub czegoś takiego?

Odpowiedz

30

Możesz użyć przeciążenia ToString. Wystarczy popatrzeć na this page uzyskać więcej informacji

więc wystarczy użyć myDate.ToString("yyyy-MM-dd HH:mm:ss")

lub coś równoważne

+0

Dzięki! Nie zdawałem sobie sprawy, że metoda toString była przeciążona. – DisgruntledGoat

+3

Mała, ale ważna wskazówka - należy używać "MM" przez wiele miesięcy wielkimi literami. W przeciwnym razie dostaniesz minuty zamiast miesięcy. – Sukhi

6

można to zrobić za pomocą funkcji formatowania, oto próbka:

Format(mydate, "yyyy-MM-dd HH:mm:ss") 
2
myDate.ToString("yyyy-MM-dd HH:mm:ss") 

kapitał HH jest w formacie 24-godzinnym, zgodnie z określeniem:

2

Lubię:

Dim timeFormat As String = "yyyy-MM-dd HH:mm:ss" 
myDate.ToString(timeFormat) 

Łatwy do utrzymania, jeśli chcesz użyć go w kilku częściach kodu, formaty daty zawsze zmieniają się prędzej czy później.

2
Dim timeFormat As String = "yyyy-MM-dd HH:mm:ss" 
objBL.date = Convert.ToDateTime(txtDate.Value).ToString(timeFormat) 

ten może być używany na całym świecie, aby przekształcić tak wiele pole daty w formularzu.

Dobranoc ... Do widzenia ... :-)

+0

To działało dla mnie w VS 2008 –

Powiązane problemy