2010-09-30 64 views
1

我有存储在ISO在VB.net 8601格式的日期VB.net ISO日期格式

'Date here is local time in germany 
Dim s As String = "2010-09-27T16:54:28+02:00" 

Dim dt As DateTime 
If Date.TryParse(s, dt) = True Then 

End If 

当我使用尝试解析它显示我迄今在我的本地时区,

如何我可以得到日期为

2010-9-27 4:54 PM以及GMT日期?

回答

2

日期不会以任何特定表示形式存储在内部。

你需要对其进行格式化显示,使用正确的格式DateTime字符串(无论是customstandard):

Dim s As String = "2010-09-27T16:54:28+02:00" 

Dim dt As DateTime 
If Date.TryParse(s, dt) = True Then 
    Dim gmt as String = dt.ToUniversalTime().ToString("r", CultureInfo.InvariantCulture) 
    Dim custom as String = dt.ToUniversalTime().ToString("yyyy-M-d h:mm tt", CultureInfo.InvariantCulture) 
End If 
+0

如果我做dt.ToLocalTime它给了我“09/27/2010 04:54: 28“这是coorect但没有上午或PM – cshah 2010-09-30 20:49:24

+0

@cshah - ”DateTime.ToString“将默认为本地系统设置的格式,除非定义,因此您需要告诉它使用哪种文化。我已经更新了我的答案以反映这一点。 – Oded 2010-09-30 20:55:57