2014-03-31 53 views
0

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

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 我试过各种代码但没有工作。

回答

0

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

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

参考:Custom Date and Time Format Strings

+0

什么的“格式意味着什么?如果我输入“hh:mm:ss tt”,会不会是一样的? – Leeuwenhok

+0

@Luuwenhok:撇号是把格式的文字值。冒号是时间分隔符的标记,因此当前文化的时间分隔符将在那里使用。无论文化设置如何,通过将其设置为文字值,它总是冒号。 – Guffa

+0

你说的这种文化是什么? :p Btw,你的代码完美工作。我花了一个小时试图找出昨晚,但不能。我尝试了将Date转换为TimeSpan,然后将其转换为string.format(“hh:mm:ss”)的东西,但它给了我一个FormatException的错误或者沿着这些行的东西。谢谢你的帮助! :) – Leeuwenhok