【发布时间】:2018-02-13 11:00:42
【问题描述】:
我正在开发一个 Web 应用程序,它是从以前基于 Visual Basic 6 的桌面版本的过渡。我必须在支持票证系统中显示票证首次到达、首次处理等时间。
我在时间格式化时遇到了某些问题,因为我似乎必须根据输入使用几种不同的方法来获得我想要的东西,现在我对何时应该使用每种方法感到困惑。
例如,当使用系统 DateNow 以小时、分钟和秒为单位获取答案时,这可以正常工作:
Strings.Format(Date.Now, "HH:mm:ss")
但是我在数据库中有字符串值,它们以某种方式存储,我无法修改数据库以具有我更愿意存储它的时间戳字段,时间、分钟和秒被挤在一起,如其中 13h,57mins,20secs 以字符串“135720”结尾。如果我尝试同样的方法
Dim info as string="135720"
Strings.Format(val(info),"HH:mm:ss)
我得到的答案是实际的格式“HH:mm:ss”,而不是我预期的 13:57:20。 但如果我在 .net 中使用转换后的 VB6 函数:
Microsoft.VisualBasic.Format(Val(Info), "##:##:##")
它工作得很好。 我还必须使用 Microsoft.VisualBasic.Format 尝试修复错误存储的字符串,例如“1357”或仅“135”将其转换为“13:57:00”或“13:50:00”使用基于字符串长度的大小写选择。
但我真的不想在应该是更新的应用程序中使用旧的编程语言,因为我最终不了解新的工作原理,并且我已经广泛研究了文档,但没有更聪明。
我确实在社区内查看过,但在以下问题中也没有真正找到答案: Is there a way to programmatically convert VB6 Formatting strings to .NET Formatting strings?
A regular expression to validate .NET time format
Time format of datetime field in .net
任何帮助找到我应该这样做的新方法以及为什么会非常感激。
谢谢
【问题讨论】: