2016-04-18 13 views
0

Wie konvertiert man folgenden Zeichenfolge zu DateTime in VB?
Ich habe Fehler, wenn, wie unten Ausführung von Code:Konvertieren String in DateTime in VB

Dim date As String = "Wed Mar 30 2016 00:00:00 GMT+0800 (Malay Peninsula Standard Time)" 
DateTime.Parse(date) 

System.FormatException: "String nicht als gültige Datetime erkannt wurde."

+0

Das Datum, das Sie gegeben haben, scheint ziemlich verwirrend .. – MusicLovingIndianGirl

+0

Ich habe es mit lim0721lim

+0

Haben Sie diese Antwort geprüft: http://stackoverflow.com/questions/12675421/ datetime-parseexact-format-zeichenfolge? Wie können Sie den Zeitstempel direkt übergeben? –

Antwort

3

Ihre Saite ist eindeutig kein Standard Datums- und Uhrzeitformat für jede Kultur.

Aber da Ihre Zeichenfolge UTC Offset hat, würde ich es stattdessen zu analysieren. Und da es den Namen der Zeitzone und seine Abkürzungen nicht enthält, müssen Sie sie als String-Literal-Trennzeichen entschlüsseln. Sie können dafür das Format ddd MMM dd yyyy HH:mm:ss 'GMT'zzz '(Malay Peninsula Standard Time)' verwenden.

C#

var date = "Wed Mar 30 2016 00:00:00 GMT+0800 (Malay Peninsula Standard Time)"; 
var dto = DateTimeOffset.ParseExact(date, 
       "ddd MMM dd yyyy HH:mm:ss 'GMT'zzz '(Malay Peninsula Standard Time)'", 
       CultureInfo.InvariantCulture); 

VB.NET

Dim [date] = "Wed Mar 30 2016 00:00:00 GMT+0800 (Malay Peninsula Standard Time)" 
Dim dto = DateTimeOffset.ParseExact([date], "ddd MMM dd yyyy HH:mm:ss 'GMT'zzz '(Malay Peninsula Standard Time)'", CultureInfo.InvariantCulture) 

Jetzt haben Sie eine DateTimeOffset als {30.03.2016 00:00:00 +08:00}. Jetzt können Sie es .DateTime ot .UtcDateTime Eigenschaften verwenden, wie Sie möchten.

enter image description here

+0

Ups, 'C#' tag entfernt. Da ich mit der 'vb.net'-Syntax nicht vertraut bin, habe ich diesen Code mit http://converter.telerik.com/ in' vb.net' konvertiert. –