如何将DateTime转换为String

时间:2013-08-26 14:10:07

标签: vb.net string datetime

while循环中的ra.Value有时是DateTime类型,不幸的是.ToString()方法不足以将其转换为字符串。我应该更改我的代码,以识别ra.Value是DateTime类型并将其转换为String。现在我有一个例外,即从“DateTime”类型到“String”类型的转换无效。

With ro.Attributes.GetEnumerator
    While .MoveNext
        Dim ra As ReportAttribute = CType(.Current, ReportAttribute)
        Dim lstrColumnReportObj As Integer = ra.Column
        Dim lstrValueReportObj As String = ra.Value.ToString()
        lstrParTable(lstrColumnReportObj) = lstrParTable(lstrColumnReportObj) + lstrValueReportObj
    End While
End With

谢谢。

1 个答案:

答案 0 :(得分:0)

您可能正在寻找的简单解决方案是:

With ro.Attributes.GetEnumerator
    While .MoveNext
        Dim ra As ReportAttribute = CType(.Current, ReportAttribute)
        Dim lstrColumnReportObj As Integer = ra.Column
        Dim lstrValueReportObj As String = Nothing
        If TypeOf ra.Value Is Date Then
            lstrValueReportObj = ra.Value.ToString("d MMM yyyy")
        Else
            lstrValueReportObj = ra.Value.ToString()
        End If
        lstrParTable(lstrColumnReportObj) = lstrParTable(lstrColumnReportObj) + lstrValueReportObj
    End While
End With

然而,这确实是一种不好的做法,你可能想重新考虑你的整体设计。通常,当您必须开始为某些类型设置特殊逻辑时,这通常表明您可以以更好的方式执行此操作。例如,当您开始为其他类型开始需要自定义格式时会发生什么。一旦你有超过一些例外,它将变得笨拙并且代码将变得脆弱(容易出现错误)。

另外,我觉得有必要提一下,在.NET中不鼓励使用匈牙利语。如果你的雇主要求你使用它,那很好,但除此之外,我建议你阅读official Microsoft naming guidelines