【发布时间】:2016-04-18 23:40:07
【问题描述】:
我正在努力获取 datagridview 中两个单元格之间的确切值。这两个值都是 HH:mm:ss.fff 格式,但是当我尝试计算差异时,我无法在文本框中显示 .fff。我知道我需要以某种方式格式化,但我尝试的每一种方式都会出错。我的代码如下。无论如何我都不想显示日期或年份,单元格中的数据将始终与 HH:mm:ss.fff 一起出现。
提前致谢。使用 Visual Studio 2013
Dim value2 As DateTime = DateTime.Parse(dgvConvert(3, 1).Value)
'value is in "HH:mm:ss.fff" format i.e 08:01:05.900
Dim value1 As DateTime = DateTime.Parse(dgvConvert(3, 2).Value)
'value is in "HH:mm:ss.fff" format i.e 08:01:50.000
Dim timespan2 As DateTime = DateTime.Parse(value2)
Dim timespan1 As DateTime = DateTime.Parse(value1)
Dim duration As TimeSpan = timespan1 - timespan2
Dim duration1 As String = duration.ToString
txtResult.Text = duration1.ToString
'result is "00:00:05" but i am trying to get "00:00:05.900"
'txtResult.Text = duration(format("HH:mm:ss.fff")) does not work.
这是我用来将 CSV 写入 DataGridView 的代码
Private Sub btnLoadFileToConvert_Click(sender As Object, e As EventArgs) Handles btnLoadFileToConvert.Click
' MessageBox.Show("Make sure your file only contains numbers in the first coumn", "Check File")
dgvConvert.Rows.Clear()
Dim TextLine As String = ""
Dim SplitLine() As String
Dim fname As String = txtFileToConvert.Text
If System.IO.File.Exists(fname) = True Then
Dim objReader1 As New System.IO.StreamReader(fname)
Do While objReader1.Peek() <> -1
TextLine = objReader1.ReadLine()
SplitLine = Split(TextLine, ",")
Me.dgvConvert.Rows.Add(SplitLine)
Loop
objReader1.Close()
objReader1.Dispose()
Else
MsgBox("File Does Not Exist")
End If
dgvConvert.RowCount = 6001
【问题讨论】:
-
为什么要解析两次?`
-
如果是存储在那里的 DateTime 值。你为什么要解析?
-
将 Option Strict On 放在源代码文件的顶部,以帮助编译器帮助您。
-
LUC,我解析了两次,这就是我编写它的方式,但这并不意味着它是最好的代码。我肯定是初学者。 Plutonix,看来我需要对其进行解析才能将其放入文本框中。我无法在不解析的情况下简单地执行计算。汉斯-我不知道那是什么意思:)
-
单元格中实际值的数据类型是什么?它们是
String对象吗?Date对象?TimeSpan对象?还有什么?
标签: .net vb.net parsing datetime timespan