vb.net - 将表示 24H 时间的字符串转换为 12H 时间 VB.NET

标签 vb.net datetime

解决方案

感谢 casperOne's answer ,这是我的结果函数:

Shared Function FormatDate(ByVal s As String) As String
    Dim DT As DateTime
    s = Regex.Replace(s, "[^1234567890]", "")
    DT = DateTime.ParseExact(s, "HHmm", _
        Globalization.CultureInfo.InvariantCulture)
    Return DT.ToString("h:mm tt")
End Function

我正在读取一个数据库,该数据库以字符串格式 hh:mm 保存时间信息。出于某种原因,我记得很久以前用来完成的一个内置函数,但我一辈子都不记得如何做到这一点。因此,我编写了这个快速而肮脏的函数:

 Shared Function FormatDate(ByVal s As String) As String
    '' this function takes a time string from the database
    '' and changes it from 24h to 12h

    Dim oSplit As String() = s.Split(":"c)
    Dim oRet As String = "", suffix As String = ""
    Dim hour, minute As String

    If CInt(oSplit(0)) > 12 Then
        hour = CStr(CInt(oSplit(0)) - 12)
        suffix = "PM"
    Else
        hour = oSplit(0)
        suffix = "AM"
    End If
    minute = oSplit(1)
    oRet = String.Format("{0}:{1} {2}", hour, minute, suffix)
    Return oRet
End Function

有人知道我认为我指的特定功能吗?

最佳答案

您可以在此处查看“如何将 1400-1500 转换为下午 2 点 - 3 点?”问题的答案:

How to convert 1400-1500 to 2pm - 3pm?

在格式中,将格式中的大写 H 替换为小写 h 以切换为 12 小时格式。

关于vb.net - 将表示 24H 时间的字符串转换为 12H 时间 VB.NET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/687085/

相关文章:

java - 从 android 读取 WCF REST 日期

ios - NSDate 作为 Swift 中的函数参数

mysql - 使用可变数量的 IN (p1, p2, p3) 参数的动态查询

vb.net - 如何在没有 API 的情况下查找 OneDrive (SkyDrive) 和 GoogleDrive 文件夹?

vb.net - 如何绘制圆形渐变?

php 获取语言环境特定的日期格式

python - 如何使用 Pandas.DataFrame 查询方法来获取日期时间或周期类型的索引?

c# - 如何将 DateTime 格式化为 24 小时制?

vb.net - 如何在 Process.Start 中的两个进程之间使用管道

windows - 如何在 winforms 中重新绑定(bind)组合框?