VB.net ISo日期格式

VB.net ISo日期格式,vb.net,Vb.net,我在VB.net中有一个日期,它以ISO 8601格式存储 '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以及GMT日期?日期不会以任何特定的

我在VB.net中有一个日期,它以ISO 8601格式存储

'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以及GMT日期?

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

您需要使用正确的
DateTime
格式字符串(或)将其格式化以供显示:


如果我做dt.ToLocalTime,它会给我“09/27/2010 04:54:28”,这是正确的,但没有am或PM@cshah-
DateTime.ToString
的格式默认为本地系统设置,除非已定义,因此您需要告诉它要使用的区域性。我更新了我的答案以反映这一点。
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