如何在VB.Net中将字符串格式的时间转换为日期时间格式

时间:2018-03-01 19:11:54

标签: vb.net vb.net-2010

此代码生成以下字符串:

myString = 12:44:44.6111472

myString = Date.Now.TimeOfDay.ToString

我想添加16.1234567秒和myString的值,并将结果值分配给名为myNewString的新字符串。

我尝试过的每个函数都会丢失7位小数。 还有其他方法我可以使用它并不要求我拆分整个字符串值,修改所需的部分,考虑进位,然后重新组装?

如果没有,那就这样吧。

但是,我想有一些方法,而我却找不到它!

谢谢!

2 个答案:

答案 0 :(得分:0)

Datetime有一些可以使用的解析函数。例如:

    Dim mystring As String = "12:44:44.6111472"
    Dim dt As System.DateTime = System.DateTime.Parse(mystring)
    dt += New TimeSpan(16.1234567 * TimeSpan.TicksPerSecond)
    mystring = dt.TimeOfDay.ToString()
    'now mystring = "12:45:00.7346039"

答案 1 :(得分:0)

这是另一种类似于Ben J的方法,没有使用时间跨度(这可能使事情看起来更简单):

Dim myString = Date.Now.TimeOfDay.ToString

' parse datetime string and add seconds
Dim myDate = DateTime.Parse(myString).AddSeconds(16.1234567) 

' outputs 16.123000 so you still lose a few decimal points but not all 7,
' is this close enough precision for you?
Dim ts = String.Format("{0:N6}", (New TimeSpan(myDate.Ticks) - New TimeSpan(DateTime.Parse(myString).Ticks)).TotalSeconds)