如何将以下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未被识别为有效 日期时间"
答案 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
属性。