如何以12/24小时格式显示shortTime,具体取决于用户的设置

时间:2014-06-18 20:51:20

标签: vb.net winforms

我有一个子显示用户的上次登录时间。目前,用户上次登录需要时间,将其转换为本地时间,并且通常会显示短时间。这可以通过以下方式完成:

subItem("Last_Login").Text = login.ToString("g", 
                                            DateTimeFormatInfo.InvariantInfo)

并且它正确显示日期和时间的缩写形式(24小时格式)作为用户的上次登录时间。

我希望更改此设置,以便显示时间,但使用该应用程序的用户将其时间格式化。

例如,如果时间显示为6/18/2014 3:02 PM,则会在表单中显示该时间。如果我的时间设置为24小时时钟格式,则用户会将时间视为6/18/2014 13:02

我试过了: subItem("Last_Login").Text = login.ToString() 这很有效。但是它会显示longTimePattern。但是,当我添加"g""t"时似乎偏离了用户的区域设置,而不是他们的时钟设置。

我还尝试添加新的DateTimeFormatInfo对象并使用定义heredtFormat.ShortTimePattern,但是再次 - 没有运气。

最后,我目前正在获取6/18/2014 3:14:00 PM作为最后一次登录时间,但我需要获得6/18/2014 3:14 PM(任务栏上的时钟实际显示的内容)。或者,如果我的时钟设置为24小时格式而不是12格式,我需要6/18/2014 13:14而不是6/18/2014 13:14:00

如何做到这一点?

编辑:调试时,我会检查即时窗口以查看我的ShortTimePattern是什么,即使我的时钟设置为24小时格式,它始终显示为h:mm tt从不H:mm。这似乎是这里的主要问题。

My regional time settings which should display 24-hour clock short time Still getting 12-hour short time

1 个答案:

答案 0 :(得分:0)

登录详细信息来自此处subItem("Last_Login").Text正确吗?

您可以将其传递给Date变量,然后将int' s格式转换为您指定的格式

             dim x as Date = subItem("Last_Login").Text
             msgbox(x.tostring("MM/dd/yyyy HH:mm"))