在 DevExpress gridview 中以编程方式格式化日期字符串 vb.net

Format date string programatically in DevExpress gridview vb.net

我有一个日期在 DevExpress 的网格视图中显示如下:20071031 (YYYYMMDD*) 我希望它在网格视图中显示为 2007/10/31。

*数据是从 sql 服务器 table 作为 Varchar 导入的。

我尝试了以下方法,但没有任何作用,日期仍然显示为 YYYMMDD。

gridview.Columns("CloseDate").DisplayFormat.FormatType = FormatType.DateTime
gridview.Columns("CloseDate").DisplayFormat.FormatString = "d"

我也知道以下方法可以将字符串转换为所需的日期格式(但是我不能将其应用于我的情况)。

Dim strDate As String = DateTime.ParseExact("20071117", "yyyyMMdd", Nothing).ToString("MM\/dd\/yyyy")

DevExpress 支持团队为我提供了以下解决方案:

Private Sub gridview_CustomColumnDisplayText(sender As Object, e As DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgs) Handles gridview.CustomColumnDisplayText
       If e.Column.FieldName = "CloseDate" Then
           Dim strDate As String = DateTime.ParseExact(e.Value, "yyyyMMdd", Nothing).ToString("MM\/dd\/yyyy")
           e.DisplayText = strDate
       End If
End Sub

我不明白为什么你不能使用 ParseExact 但也许你可以使用这个:

    Dim D$ = "20150522"
    Dim mData =  D.substring(4,2) & "/" & D.substring(6) & "/" & D.substring(0,4)