2010-09-30 92 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