在VB中将String转换为DateTime

时间:2016-04-18 12:17:48

标签: vb.net datetime

如何将以下String转换为VB中的DateTime?
执行代码时出现错误:

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

System.FormatException:" String未被识别为有效   日期时间"

1 个答案:

答案 0 :(得分:3)

您的字符串显然不是任何文化的标准日期和时间格式。

但由于你的字符串有UTC Offset,我会把它解析为DateTimeOffset。由于它不保留时区名称及其缩写,因此您需要将它们作为字符串文字分隔符进行转义。您可以使用ddd MMM dd yyyy HH:mm:ss 'GMT'zzz '(Malay Peninsula Standard Time)'格式。

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)

现在您的DateTimeOffset{30.03.2016 00:00:00 +08:00}。现在,您可以根据需要使用它的.DateTime ot .UtcDateTime属性。

enter image description here