【问题标题】:Get Time From Date VB.Net从日期获取时间 VB.Net
【发布时间】:2014-05-11 05:03:55
【问题描述】:

我正在制作一个显示世界各国时间的应用程序。用户可以从组合框中选择时区,时间应显示在标签中。我正在使用以下代码将 UTC 时间转换为选定的时区:

Dim ConvertedTime As Date = TimeZoneInfo.ConvertTimeFromUtc(Date.UtcNow, CBTime1.SelectedItem)

CBTime1 按代码列出所有时区:

Dim TimeZones As ReadOnlyCollection(Of TimeZoneInfo)
    TimeZones = TimeZoneInfo.GetSystemTimeZones()
    CBTime1.BindingContext = New BindingContext
    CBTime1.DataSource = TimeZones

以这种格式显示转换时间的代码应该是什么:08:36:27 PM 我尝试了各种代码,但都没有成功。

【问题讨论】:

    标签: vb.net date time format clock


    【解决方案1】:

    您可以使用自定义格式字符串来格式化时间:

    Dim formatted As String = ConvertedTime.ToString("hh':'mm':'ss tt")
    

    参考:Custom Date and Time Format Strings

    【讨论】:

    • 格式中的 ' 是什么意思?如果我输入“hh:mm:ss tt”会不会一样?
    • @Leeuwenhok:撇号是在格式中放置一个文字值。冒号是时间分隔符的标记,因此将在此处使用当前区域性的时间分隔符。通过使其成为文字值,无论文化设置如何,它始终是一个冒号。
    • 你说的这种文化是什么? :p 顺便说一句,您的代码运行良好。昨晚我花了一个小时试图弄清楚,但无法解决。我尝试了首先将 Date 转换为 TimeSpan 然后将其转换为 string.format("hh:mm:ss") 的方法,但它给了我一个 FormatException 错误或类似的东西。谢谢你的帮助! :)
    • @Leeuwenhok:当任何数据被格式化为字符串或从字符串解析时,都会涉及到文化设置。如果您在调用中不提供CultureInfo 对象(或格式化数字时不提供NumberFormatInfo 等特定子对象),则默认使用应用程序的当前文化设置。您可以使用CultureInfo.CurrentCulture 属性来找出应用程序的默认区域性。
    • @Leeuwenhok:如果你想接受答案,在它的左边有一个复选标记,你可以点击。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-23
    • 2015-06-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多