0

我需要将时间格式化为:

函数的输入看起来像

Input        Output
01:20        0120
0120         0120
01:20:23     0120
120          0120
01           0100
1            0100

我们曾经使用 VB6.Format,但不能再使用了。我将如何使用诸如 String.Format 之类的东西来替换此代码?

我们以前会使用这样的东西

TimeFormatVariable = VB6.Format(OriginalTimeInput, "hhnn")
4

2 回答 2

1

假设您的 OriginalTimeInput 是 DateTime 或 Date 格式:

OriginalTimeInput.ToString("hhmm")

应该这样做。

于 2013-07-10T19:45:21.283 回答
0

这是一个简单的函数,它将采用与您的任何输入和您指定的格式一样格式化的字符串,并返回与您的输出一样格式化的字符串:

Private Function FormatTime(Input As String, Format as String) As String
    Dim TimeFormat As New DateTime
    Dim GoodString As Boolean = DateTime.TryParse(Input, TimeFormat)
    If Not GoodString Then
        If Integer.TryParse(Input, vbNull) Then
            If Input.Length > 2 Then
                Input = Input.PadLeft(4, "0"c)
                TimeFormat = New DateTime(Now.Year, Now.Month, Now.Day, Integer.Parse(Input.Substring(0, 2)), Integer.Parse(Input.Substring(2)), 0)
            Else
                TimeFormat = New DateTime(Now.Year, Now.Month, Now.Day, Integer.Parse(Input.PadLeft(2, "0"c).Substring(0, 2)), 0, 0)
            End If
        End If
    End If
    Return TimeFormat.ToString(Format)
End Function

这也可以进行简单的验证。它检查正确的时间格式,如果不是,是否所有字符都是数字

您的声明将如下所示:

`TimeFormatVariable = FormatTime(OriginalTimeInput, "hhmm")

于 2013-07-11T02:53:19.237 回答