来自String的Vb.net DateTime转换

时间:2012-06-18 16:22:50

标签: vb.net string datetime

我在xml文件中获取此日期时间格式:

2012-06-14T11:15:41.587-07:00
2012-06-14T10:49:32.397-07:00
2012-06-11T11:10:49.2-07:00

我相信我理解其中一些,如果我错了,请纠正我:

2012-06-14 =日期

T =时间标识符

10:49:32.397 =小时秒毫秒

-07:00 =我不知道

我需要将其转换为我可以为我的数据网格视图排序的东西。

当我尝试这样的事情时:

Console.WriteLine(String.Format("{0:d/M/yyyy HH:mm:ss}", "2012-06-14T10:49:32.397-07:00"))

我将原始字符串取回而没有转换。

有人有任何建议吗?

3 个答案:

答案 0 :(得分:4)

  

-07:00 =我不知道

-7是时区偏移量。这意味着DateTime比UTC晚7个小时,这表示美国山区时间。

您想使用DateTime.Parse来获取DateTime个对象。

Dim val As String = "2012-06-11T11:10:49.2-07:00"
Dim parsedDateTime As DateTime = DateTime.Parse(val)
'Do whatever with parsedDateTime here

答案 1 :(得分:0)

看一下这篇文章:

http://msdn.microsoft.com/en-us/library/1k1skd40.aspx

它应该让您更好地掌握如何使用DateTime对象。您拥有的时间是ISO 8601格式。

答案 2 :(得分:0)

-07:00是与UTC的偏移量。您可以通过DateTimeOffset.ParseExact解析它,其中包括偏移的说明符(“zzz”格式说明符)。

在你的情况下,我相信这将是:

Dim xmlValue = "2012-06-14T11:15:41.587-07:00"

Dim value as DateTimeOffset = DateTimeOffset.ParseExact(xmlValue, "yyyy-MM-dd\Thh:mm:ss.fffzzz", CultureInfo.InvariantCulture)