【问题标题】:VB.Net Replacing the usage of VB6.FormatVB.Net 替代 VB6.Format 的使用
【发布时间】:2013-07-11 11:05:59
【问题描述】:

我需要像这样格式化时间:

函数的输入看起来像

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")

【问题讨论】:

标签: vb.net vb.net-2010


【解决方案1】:

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

OriginalTimeInput.ToString("hhmm")

应该这样做。

【讨论】:

  • 问题在于它是以字符串形式出现的。
【解决方案2】:

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

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-16
    • 1970-01-01
    • 1970-01-01
    • 2018-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多